2011-10-28 81 views
-1

我想通過mysql更新超市中的人數。超市就是桌子。人是指超市中的人數。 N表示超市的名稱。減少意味着超市中減少的數量。如果超市中的人數少於100人,則將該人設置爲100.此mysql命令返回「錯誤1193未知系統變量'person'」。有什麼建議嗎?在mysql中遇到IF語句錯誤?

CREATE PROCEDURE updatePerson(IN n CHAR(10), IN decrease INT) 
BEGIN 
UPDATE supermarket 
SET person = person - decrease 
WHERE name = n; 

IF person< 100 THEN 
    SET person = 100; 
END IF; 
END 
+1

似乎你只是在一個半相關的查詢之後插入了一個'IF'語句,並期望它能夠神奇地工作。 –

回答

1
CREATE PROCEDURE updatePerson(IN n CHAR(10), IN decrease INT) 
BEGIN 
UPDATE supermarket 
SET person =case when (person - decrease) <100 then 100 else (person - decrease) end 
WHERE name = n;  
END 

嘗試。