Verstehen der CASE..WHEN-Anweisung in MySQL
Bei der Arbeit mit MySQL ist die CASE..WHEN-Anweisung ein wertvolles Werkzeug zur Auswertung mehrere Bedingungen und die Rückgabe unterschiedlicher Werte basierend auf diesen Bedingungen. Es gibt jedoch bestimmte Möglichkeiten, es richtig zu verwenden, um unerwartete Ergebnisse zu vermeiden.
Betrachten Sie die folgende Abfrage:
SELECT CASE course_enrollment_settings.base_price WHEN course_enrollment_settings.base_price = 0 THEN 1 WHEN course_enrollment_settings.base_price<101 THEN 2 WHEN course_enrollment_settings.base_price>100 AND course_enrollment_settings.base_price<201 THEN 3 ELSE 6 END AS 'calc_base_price', course_enrollment_settings.base_price FROM course_enrollment_settings WHERE course_enrollment_settings.base_price = 0
Die Abfrage zielt darauf ab, Kurse mit einem Grundpreis von Null abzurufen und bedingt zuzuweisen ein Wert für „calc_base_price“, basierend auf Preisspannen. Das Ergebnis gibt jedoch für alle Zeilen mit base_price 0 „3“ zurück.
Um dies zu beheben, ist es wichtig, den Spaltennamen nach CASE zu entfernen:
SELECT CASE WHEN base_price = 0 THEN 1 ... END
Dadurch wird sichergestellt, dass der CASE Die Anweisung wertet die Bedingungen korrekt aus und gibt den entsprechenden Wert für jede Zeile zurück. Die CASE-Anweisung hat zwei Formen: eine mit einem Zielspaltennamen und eine ohne. In diesem Szenario ist die zweite Form erwünscht, die Suchbedingungen verwendet.
Das obige ist der detaillierte Inhalt vonWie kann ich die CASE..WHEN-Anweisung von MySQL richtig verwenden, um unerwartete Ergebnisse zu vermeiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!