如何在MySQL中执行存储在变量中的查询?

如何在MySQL中执行存储在变量中的查询?,mysql,Mysql,我试图在sqlyog中执行查询,这些查询是 SET @adm_code = 12781; SET @transfer = (SELECT MAX(id) FROM std_transfer_history AS sth WHERE admission_code = @adm_code); EXECUTE @transfer; 但它给出了一个错误 Query: execute @transfer Error Code: 1064 You have an error in your SQL sy

我试图在sqlyog中执行查询,这些查询是

SET @adm_code = 12781;
SET @transfer = (SELECT MAX(id) FROM std_transfer_history AS sth
WHERE admission_code = @adm_code);
EXECUTE @transfer;
但它给出了一个错误

Query: execute @transfer

Error Code: 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@transfer' at line 1

Execution Time : 0 sec
Transfer Time  : 0 sec
Total Time     : 0 sec

那么我如何才能摆脱……

您缺少执行动态查询的
prepare
语句

// your transfer variable query ...

PREPARE stmt FROM @transfer;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

我建议检查与MySQL服务器版本对应的手册,以了解
EXECUTE
的正确语法。例如,对于MySQL 5.7,它将给出查询:EXECUTE stmt错误代码:1243未知的准备语句处理程序(stmt)给定执行时间:0秒传输时间:0秒总时间:0秒