[MySQL] Sortierung NULL und leere am Ende

wahnsinn

Teilzeitcholeriker
ID: 13929
L
20 April 2006
1.168
153
Ich habe eine völlig normale MySQL-Abfrage, die ich gerne alphabetisch sortieren lassen würde. Funktioniert soweit auch.

Mein Problem ist jedoch, dass Einträge, die im Feld, nach dem sortiert werden soll, einen leeren String oder NULL enthalten am Anfang der Rückgabe stehen. Ich hätte diese jedoch gerne am Ende der Übersicht.

Beim googeln bin ich bereits auf die Stichworte Alternate Collating Sequence gestoßen, allerdings kam ich damit auch nicht mehr weiter.

Wie kann ich mein Problem lösen? Am besten während der Laufzeit, so dass andere Scripte nicht betroffen sind.
 
Du könntest probieren, anhand von zwei Kriterien zu sortieren. Das erste Kriterium wäre die bool'sche Abfrage, ob das Feld leer ist - dieses sortierst Du absteigend. Das zweite Kriterium wäre Dein eigentliches Kriterium.

Sprich:
Code:
SELECT text
FROM table
ORDER BY (text IS NULL OR text='') DESC, text ASC
Untested, aber sollte zumindest so in der Art eigentlich funktionieren.
 
Vielen Dank, das funktioniert wunderbar. Nur brauchte ich ASC statt DESC, um die leeren hinten hin zu stellen.