2011-10-28 8 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 

ことを試してみてください。

関連する問題