MySQL – WHEN, THEN, ELSE und END
Möchte man verschiedene Optionen mit einer MySQL Abfrage auswerten bieten sich die Befehle WHEN, THEN, ELSE und END an.
Beispiel, Abfrage eines Tagesabstandes für eine Altersbestimmung
Dieser Code zeigt Beispielhaft wie man das Alter von Datenbankeinträgen verschieden darstellen kann. Hier sollen Newseinträge mit einer Art „Neu Status“ versehen werden.
CODE:
SELECT newstitel, CASE WHEN (TO_DAYS(CURDATE()) - TO_DAYS(newsdate)) BETWEEN 0 AND 7 THEN 'NEU, maximal 7 Tage alt' WHEN (TO_DAYS(CURDATE()) - TO_DAYS(newsdate)) BETWEEN 8 AND 14 THEN 'Zwischen 8 und 14 Tage alt' WHEN (TO_DAYS(CURDATE()) - TO_DAYS(newsdate)) BETWEEN 15 AND 21 THEN 'Zwischen 15 und 21 Tage alt' WHEN (TO_DAYS(CURDATE()) - TO_DAYS(newsdate)) BETWEEN 22 AND 29 THEN 'Zwischen 22 und 29 Tage alt' WHEN (TO_DAYS(CURDATE()) - TO_DAYS(newsdate)) BETWEEN 30 AND 40 THEN 'Zwischen 30 und 40 Tage alt' ELSE 'Noch älter' END AS neustatus, FROM news
Je nach Alter wird dann zum Newstitel noch der entsprechende Status von NEU, maximal 7 Tage alt bis Noch älter ausgegeben.
Einsetzbar ist eine derartige MySQL Abfrage aber auch für Abfragen von Altersbereichen von Mitgliedern, Registrierungshäufigkeiten und dergl.
Keine Kommentare vorhanden