dedlfix: MySQL Frage: Sortierung von 2 Spalten

Beitrag lesen

Hi!

Ich hätte gern, die Aktuellste Zeile nach oben sortiert. Ich bekomme aber irgendwie keine gescheite Kombination von "order by" mit "datum_update desc" und "datum_eintrag desc" hin.
Ich nehme an es liegt an den teilweise leeren "datum_update" Feldern.

Sowohl das Default-Datum '0000-00-00' als auch NULL sind kleiner als alle anderen Datumsangaben, werden also bei einem DESC nach hinten sortiert. Wenn du allerdings kein Datum sondern beispielsweise einen String gespeichert hast, kann das Ergebnis anders aussehen.

Wenn du allerdings die Daten des Eintrags und des Updates gemischt betrachten willst, kannst du das mit zwei vereinigten Abfragen erreichen

(SELECT datum_update datum, ... WHERE datum_update <> deine_definition_von_leer)
  UNION
  (SELECT datum_eintrag datum, ... WHERE datum_update == deine_definition_von_leer)
  ORDER BY datum DESC

Das bringt die beiden Daten in eine Spalte, nach der dann sortiert werden kann.

Statt der zwei Abfragen kannst du auch versuchen, eine Formel zu erstellen, die datum_update oder datum_eintrag zurückgibt. Wenn ein leeres Datum durch einen NULL-Wert repräsentiert wird, dann kannst du nach

COALESCE(datum_update, datum_eintrag)

sortieren lassen. COALESCE liefert den ersten Nicht-NULL-Wert.

Lo!