dedlfix: MySQL mehrfaches ORDER BY

Beitrag lesen

Hi!

Ich möchte in meiner Abfrage/Ausgabe folgende Reihenfolge:
An erster Stelle die älteste vorlage (2010-10-15), dann (2010-10-18) und als letzes die 0000-00-00.

Dazu musst du ein weiteres Sortierkriterium vor die eigentlichen Werte stellen. Mit der IF()-Funktion kannst du das Null-Datum ermitteln und den Wert 1 zurückgaben lassen, anderenfalls eine 0. Jetzt sortierst du zunächst nach diesem Wert und anschließend nach dem eigentlichen Datum. Diesen IF()-Ausdruck kannst du direkt als erstes Sortierkriterium verwenden. Alternativ kannst du ihn auch als eine berechnete Spalte in der SELECT-Klausel einfügen, und die als erstes Sortierkriterium angeben (über ihre Nummer oder einen Alias). Mit der SELECT-Variante kannst du auch kontrollieren, ob der Ausdruck richtig arbeitet.

Lo!