我編輯了這個問題導致下面的答案提到,當使用while和begin時,它應該在存儲過程中。Mysql循環錯誤代碼#1064裏面存儲過程[修改]
所以現在我在存儲過程中運行這個,但我仍然收到錯誤。
counter;
while counter < 2
begin
GOTO counter
SELECT var1 AS LOCATION,
ROUND(sum(CASE WHEN t2.tagid = var2 THEN t2.floatvalue ELSE 0 END), 2) AS MR
ROUND(sum(CASE WHEN t2.tagid = var3 THEN t2.floatvalue ELSE 0 END), 2) AS Flw,
ROUND(sum(CASE WHEN t2.tagid = var4 THEN t2.floatvalue ELSE 0 END), 2) AS Prs,
ROUND(sum(CASE WHEN t2.tagid = var5 THEN t2.floatvalue ELSE 0 END), 2) AS Lvl
FROM table2 t2
INNER JOIN table1 t1
ON t1.id = t2.tagid
WHERE t2.t_stamp = (SELECT MAX(t2.t_stamp)
FROM table2 t2
WHERE t1.id = t2.tagid)
counter = counter+1
end
1:
var1
var2
var3
var4
var5
2:
var1
var2
var3
var4
var5
這是我得到
MySQL said: #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 'begin GOTO counter SELECT var1 AS LOCATION, ROUND(sum(CASE WHEN t2.tagid' at line 2
錯誤,我不包括CREATE PROCEDURE
,因爲我看到一個帖子,其中它更容易只是去ROUTINES
面板和粘貼沒有CREATE,DELIMITER等的SQL查詢...等。 我該如何解決這個錯誤?
你是怎麼執行這段代碼的? – peterm
你是什麼意思?在phpmyadmin 我想提供的sqlfiddle鏈接,但我認爲它現在下來 – sleepsleepsleep90731
我的意思是你試圖執行它作爲一個SQL批處理或它是存儲例程的一部分?如果它是一個前者,你可以在MySQL中做到這一點。看到我的答案。 – peterm