我必须根据从查询中设置的变量执行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语句。我该怎么办?
答案 0 :(得分:1)
MySQL不喜欢动态SQL。您需要使用准备好的语句,例如
set @s = CONCAT( ' UPDATE ',@var1, 'SET ......); -- your query
PREPARE stmt1 FROM @s;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;