Die Mechanismen von MySQL CASE verstehen
Die CASE-Anweisung von MySQL fungiert als bedingter Ausdruck und ermöglicht Ihnen die dynamische Zuweisung von Werten basierend auf angegebenen Kriterien. Auch wenn seine Syntax einer if-Anweisung ähnelt, ist seine Funktionsweise anders.
Arbeiten mit der CASE-Anweisung
Die allgemeine Syntax der CASE-Anweisung lautet wie folgt:
CASE WHEN search_condition THEN statement_list [WHEN search_condition THEN statement_list] ... [ELSE statement_list] END CASE
In diesem Zusammenhang stellt die Suchbedingung einen Vergleich dar, der bestimmt, ob die zugehörige Anweisungsliste ausgeführt wird oder nicht. Die Anweisungsliste kann jeden gültigen MySQL-Ausdruck enthalten.
Beispielverwendung für die Rollenreihenfolge
Um ein Feld „role_order“ mit unterschiedlichen Zahlen abhängig vom Wert im Feld „user_role“ zu generieren, müssen Sie kann die CASE-Anweisung wie folgt verwenden:
CASE user_role WHEN 'Manager' THEN 5 WHEN 'Part Time' THEN 7 ELSE -1 -- Unknown END
In diesem Beispiel fungiert die CASE-Anweisung als Switch-Anweisung. Wenn user_role gleich „Manager“ ist, wird „role_order“ der Wert 5 zugewiesen. Wenn user_role gleich „Teilzeit“ ist, weist es entsprechend „role_order“ den Wert 7 zu. Wenn user_role keine der angegebenen Bedingungen erfüllt, wird standardmäßig der Wert -1 zugewiesen.
Alternative Syntax
MySQL bietet eine alternative Syntax für die CASE-Anweisung wenn Sie nur einen Wert untersuchen. Diese Syntax ist prägnanter und kann wie folgt verwendet werden:
CASE WHEN user_role = 'Manager' THEN 4 WHEN user_name = 'Tom' THEN 27 WHEN columnA <> columnB THEN 99 ELSE -1 -- Unknown END
In dieser alternativen Form wird der zu vergleichende Wert (user_role) am Anfang angegeben, gefolgt von den WHEN-Bedingungen.
Wenn Sie die Mechanik der CASE-Anweisung und ihr schalterähnliches Verhalten verstehen, können Sie sie effektiv nutzen, um Werte basierend auf bestimmten Kriterien in Ihren MySQL-Abfragen zuzuweisen.
Das obige ist der detaillierte Inhalt vonWie funktioniert die CASE-Anweisung von MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!