2016-04-13 6 views
0

Ich möchte eine Abfrage schreiben, die sicherstellen wird, dass 8 Parameter einer Zeile mit den an die Prozedur übergebenen Parametern übereinstimmen. Wenn einer von ihnen unterschiedlich ist, dann modifiziere einen Status, ansonsten tue nichts.Ist es möglich, mehrere Prüfungen in einem einzigen mySQL IF-Fall zu haben?

Gibt es eine Möglichkeit, all diese Parameter in einem einzigen IF-Fall zu überprüfen? Zum Beispiel:

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

    * UPDATE ......; 

END IF 

Oder muss ich einen ELSE IF für jeden Vergleich nutzen will ich machen?

Das obige funktioniert nicht, mit oder ohne Klammern zwischen den einzelnen Tests.

+0

sind diese Felder in IF Fällen in den Update-Abfrage beteiligt sind? – mitkosoft

+0

Ich glaube nicht, dass Sie mit 'update' machen können, was Sie wollen. Natürlich akzeptiert 'if' Bedingungen, die von booleschen Operatoren akzeptiert werden. –

+0

Mögliches Duplikat von [Mehrere Bedingungen in einem einzelnen IF in Select-Abfrage] (http://stackoverflow.com/questions/5008503/multiple-condition-in-a-single-if-in-select-query) –

Antwort

2

Sie könnten wahrscheinlich mit einem einfachen UPDATE verwalten diese und WHERE-Bedingung:

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

Arbeitete perfekt! Vielen Dank! –

Verwandte Themen