[英]IF statement in MySQL results in Error Code 1064
我試圖將if語句嵌套在最終將成為例程的內容中。
SET @foo = (SELECT foo FROM table WHERE id = 1);
SET @bar = (SELECT bar FROM table WHERE id = 1);
IF @foo = @bar THEN SET @thisVar = 1;
ELSE SET @thisVar = 0;
END IF
SELECT @thisVar;
但是我得到:
錯誤代碼:1064您的SQL語法錯誤; 檢查與您的MySQL服務器版本相對應的手冊以獲取正確的語法,以在第1行“ IF @foo = @bar THEN SET @thisVar = 1;”附近使用)
我究竟做錯了什么?
不確定是否在那里,但是為什么錯誤顯示第1行? 也許問題在於您實際上沒有運行整個過程。
您可以嘗試使用IF()函數,如下所示:
SET @thisVar = IF(@foo = @bar, 1, 0);
對於簡單的if / else分配,我認為這更短,更干凈。
聲明所有內容后,將其包裝到過程中似乎很好。 還刪除了@。
CREATE PROCEDURE `DO_SOMETHING`()
BEGIN
DECLARE _foo VARCHAR(20);
DECLARE _bar VARCHAR(20);
DECLARE _thisVar INT;
SET _foo = 'test';
SET _bar = 'test';
IF _foo = _bar THEN SET _thisVar = 1;
ELSE SET _thisVar = 0;
END IF;
SELECT _thisVar;
END
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.