使用变量选择和更新

时间:2013-06-13 17:12:14

标签: mysql

我必须根据从查询中设置的变量执行UPDATE和SELECT操作。

SET @var1:=(SELECT table_name 
            FROM information_schema.tables 
            WHERE table.schema='db1' AND table_name like
                 (select tc from db2.tab1 where col1='test')
           );

@ var1返回一个表名

UPDATE @var1 SET col2='Test' WHERE 1=1;

但我在@ var1

附近收到错误

我真的需要将@ var1传递给update语句。我该怎么办?

1 个答案:

答案 0 :(得分:1)

MySQL不喜欢动态SQL。您需要使用准备好的语句,例如

set @s = CONCAT( ' UPDATE ',@var1,  'SET ......); -- your query

PREPARE stmt1 FROM @s; 
EXECUTE stmt1; 
DEALLOCATE PREPARE stmt1;