ORDER BY – Sortieren

Mit ORDER BY kann man das Ergebnis einer Selektion auf- oder absteigend sortieren.

 SELECT * FROM tabellen_name ORDER BY spalten_name ASC|DESC 

ASC = aufsteigend sortieren (kleinster Wert zuerst), default
DESC = absteigend sortieren (größter Wert zuerst)

Anhand der User-Tabelle zeige ich dir was ORDER BY macht:

Wir wollen alle Mitglieder-Daten selektieren und dabei die Liste aufsteigend nach den Punkten sortieren (der Benutzer mit dem kleinsten Punktestand kommt zuerst):

 SELECT * FROM users ORDER BY punkte ASC 


(Hinweis: der Wert „friedel85“ wurde im INSERT Tutorial eingefügt. Lass dich davon nicht irritieren oder mache zuerst den INSERT-Teil)

Nun wollen wir auf unserer Webseite eine Liste mit den neuesten Mitgliedern anzeigen, deshalb sortieren wir die Liste anhand des Datums absteigend (der User mit dem neuesten Account kommt zuerst):

 SELECT * FROM users ORDER BY created DESC 

mehrere Spalten mit ORDER BY sortieren

Wenn man seine Selektion abhängig von 2 oder mehr Spalten sortieren möchte, kann man das wie folgt machen:

 SELECT * FROM kunden ORDER BY plz, name 

Wenn keine Sortierreihenfolge angegeben ist (also ASC oder DESC) wird bei default „ASC“ verwendet. Bei einem mehrspaltigen ORDER BY, wird zuerst die erste Spalte sortiert (in diesem Fall „plz“ aufsteigend, also von 0-9 an) und dann, wenn doppelte Werte vorhanden sind, die zweite Spalte (in diesem Fall „name“ aufsteigend, also von a-z)