1

我必须根据从查询中设置的变量执行 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 来更新语句。我该如何进行?

4

1 回答 1

1

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

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

PREPARE stmt1 FROM @s; 
EXECUTE stmt1; 
DEALLOCATE PREPARE stmt1; 
于 2013-06-13T17:15:15.177 回答