2017-04-26 79 views
0

我試圖執行在SQLyog的這是如何在MySQL中執行存儲在變量中的查詢?

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 

因此,如何能我會擺脫....

+0

我建議*檢查對應於您的MySQL服務器版本的手冊,以獲得*'EXECUTE'的正確語法。對於MySQL 5.7,例如https://dev.mysql.com/doc/refman/5.7/en/sql-syntax-prepared-statements.html。 – LSerni

回答

0

你是缺少prepare語句來執行動態查詢。

// your transfer variable query ... 

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

不工作,它提供了查詢:EXECUTE語句 錯誤代碼:1243 未知事先準備好的聲明賦予執行 執行時間處理(語句):0秒 轉換時間:0秒 總時間:0秒 –

相關問題