2016-04-13 7 views
0

行の8つのパラメータがプロシージャに渡されるパラメータと同じであることを確認するクエリを記述します。いずれかが異なる場合はステータスを変更し、そうでない場合は何もしないでください。1つのmySQL IFケースで複数のチェックを行うことは可能ですか?

単一のIFケースでこれらのパラメータをすべてチェックする方法はありますか?たとえば、次のように

IF (v_duty <> duty) OR (v_current <> current) OR (v_frequency <> frequency) THEN 

    * UPDATE ......; 

END IF 

または私は私がしたい各比較のためELSE IFを使用する必要がありますか?

上記は、各テストの間に角かっこを付けてもしなくても機能しません。

+0

は例を更新クエリに関与している場合では、これらのフィールドがありますか? – mitkosoft

+0

あなたは 'update'であなたが望むことができるとは思いません。もちろん、 'if'はブール演算子で受け入れられる条件を受け入れます。 –

+0

[選択クエリで単一のIFで複数の条件が発生する可能性があります](http://stackoverflow.com/questions/5008503/multiple-condition-in-a-single-if-in-select-query) –

答えて

2

あなたはおそらく、単純なUPDATEおよびWHERE条件でこれを管理することができます:

UPDATE table_name 
    SET status_column = 'new_status' 
WHERE identifying_column = :identifier 
    AND (
      v_duty != :v_duty 
     OR v_current != :current 
     OR v_frequency != :frequency 
     ) 
+0

完璧に作業しました!ありがとう! –

関連する問題