DROP PROCEDURE IF EXISTS `Go_ShopPing`;
DELIMITER $$
CREATE PROCEDURE Go_ShopPing(
IN v_post_id int(10)
)BEGIN
UPDATE shop_1 SET price=100 WHERE uid=v_post_id LIMIT 1;
END
$$
DELIMITER ;
call Go_ShopPing(11);
我共有10個shop_ 表,分別是shop_0 ~ shop_9,求問一下有什么辦法能根據用戶 v_post_id 的ID最后一位數,來更新對應的表嗎?
例如:
傳遞過來的 v_post_id 為 11 即更新 UPDATE shop_1 SET price=100 WHERE uid=v_post_id LIMIT 1;
傳遞過來的 v_post_id 為 32 即更新 UPDATE shop_2 SET price=100 WHERE uid=v_post_id LIMIT 1;
能實作這個邏輯嗎?感謝各位大大!
uj5u.com熱心網友回復:
SET @sqlStr = CONCAT(
'UPDATE shop_', RIGHT(v_post_id,1),' SET price=100 WHERE uid=',v_post_id,' LIMIT 1',
@tableName,
' where ',
col_name,
' is not null limit 1'
);
PREPARE stmt
FROM
@sqlStr;
-- 預定義一個陳述句,并將它賦給 stmt
EXECUTE stmt;
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/113861.html
標籤:MySQL
上一篇:資料倉庫設計和資料庫設計的區別?
下一篇:MySQL授權問題
