Den CASE-Ausdruck von MySQL verstehen
Anders als die intuitive „if“-Anweisung ahmt die CASE-Syntax von MySQL eine „switch“-Anweisung nach. Es bietet zwei unterschiedliche Formate, um Bedingungen auszuwerten und entsprechende Ergebnisse zurückzugeben.
Syntax mit Vergleichsanweisungen:
CASE</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">WHEN user_role = 'Manager' then 4 WHEN user_name = 'Tom' then 27 WHEN columnA <> columnB then 99 ELSE -1 --unknown
ENDE
Mit diesem Format können Sie mehrere Vergleichsbedingungen mithilfe beliebiger gültiger SQL-Ausdrücke angeben. Jede „WHEN“-Klausel wertet ihre Bedingung aus, und wenn sie wahr ist, wird die entsprechende Anweisung ausgeführt.
Syntax mit einem einzelnen Wert:
CASE user_role</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">WHEN 'Manager' then 4 WHEN 'Part Time' then 7 ELSE -1 --unknown
END
Diese prägnante Form geht davon aus, dass Sie nur einen Wert untersuchen und ermöglicht Ihnen die Angabe mehrerer „WHEN“-Bedingungen direkt nach dem CASE-Ausdruck. Die „ELSE“-Klausel ist optional und stellt einen Fallback-Wert bereit, wenn keine der „WHEN“-Bedingungen erfüllt ist.
Anwendung auf Ihr Beispiel:
Um eine neue zu generieren Feld „role_order“ basierend auf dem Feld „user_role“ können Sie die zweite Syntax wie folgt verwenden:
CASE user_role</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">WHEN 'Manager' then 5 WHEN 'Part Time' then 8 ELSE -1 --unknown
END
Dieser Ausdruck weist „role_order“ den Wert 5 zu, wenn „user_role“ „Manager“ ist, 8, wenn „user_role“ „Teilzeit“ ist, und -1, wenn keine dieser Bedingungen erfüllt ist.
Das obige ist der detaillierte Inhalt vonWie funktioniert der CASE-Ausdruck von MySQL wie eine Switch-Anweisung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!