Mysql 使用变量选择和更新
我必须根据查询中设置的变量执行更新和选择操作Mysql 使用变量选择和更新,mysql,Mysql,我必须根据查询中设置的变量执行更新和选择操作 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
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 to update语句。如何继续?MySQL不喜欢动态SQL。您需要使用预先准备好的语句,例如
set @s = CONCAT( ' UPDATE ',@var1, 'SET ......); -- your query
PREPARE stmt1 FROM @s;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;
MySQL不喜欢动态SQL。您需要使用预先准备好的语句,例如
set @s = CONCAT( ' UPDATE ',@var1, 'SET ......); -- your query
PREPARE stmt1 FROM @s;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;