Heim > Datenbank > MySQL-Tutorial > Wie kann ich die CASE..WHEN-Anweisung von MySQL richtig verwenden, um unerwartete Ergebnisse zu vermeiden?

Wie kann ich die CASE..WHEN-Anweisung von MySQL richtig verwenden, um unerwartete Ergebnisse zu vermeiden?

Susan Sarandon
Freigeben: 2024-12-31 18:56:10
Original
888 Leute haben es durchsucht

How Can I Correctly Use MySQL's CASE..WHEN Statement to Avoid Unexpected Results?

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage