Sie haben in den vorangegangenen Beispielen vielleicht bereits
festgestellt, dass die Ergebnisdatensätze nicht in einer
bestimmten Reihenfolge angezeigt werden. Häufig ist es jedoch
einfacher, das Abfrageergebnis zu durchsuchen, wenn die
Datensätze sinnvoll sortiert werden. Um ein Ergebnis zu
sortieren, verwenden Sie die ORDER
BY
-Klausel.
Nachfolgend sind die Geburtstage der Tiere nach Datum sortiert aufgelistet:
mysql> SELECT name, geburtstag FROM haustier ORDER BY geburtstag;
+----------+------------+
| name | geburtstag |
+----------+------------+
| Buffy | 1989-05-13 |
| Bowser | 1989-08-31 |
| Fang | 1990-08-27 |
| Fluffy | 1993-02-04 |
| Claws | 1994-03-17 |
| Slim | 1996-04-29 |
| Whistler | 1997-12-09 |
| Chirpy | 1998-09-11 |
| Puffball | 1999-03-30 |
+----------+------------+
Bei zeichenbasierten Spalten erfolgt die Sortierung –
wie bei allen anderen Vergleichsoperationen auch –
normalerweise ohne Berücksichtigung der
Groß-/Kleinschreibung. Das bedeutet, dass die Reihenfolge bei
Spalten, die bis auf die Groß-/Kleinschreibung identisch
sind, nicht definiert ist. Sie können die Sortierung einer
Spalte unter Berücksichtigung der Groß-/Kleinschreibung
durch Verwendung von BINARY
wie folgt
erzwingen: ORDER BY BINARY
.
col_name
Die Standardreihenfolge bei der Sortierung ist aufsteigend, d.
h., die kleinsten Werte werden zuerst aufgeführt. Um in
umgekehrter (absteigender) Reihenfolge zu sortieren, fügen
Sie das Schlüsselwort DESC
zum Namen der
Spalte zu, nach der die Sortierung erfolgt:
mysql> SELECT name, geburtstag FROM haustier ORDER BY geburtstag DESC;
+----------+------------+
| name | geburtstag |
+----------+------------+
| Puffball | 1999-03-30 |
| Chirpy | 1998-09-11 |
| Whistler | 1997-12-09 |
| Slim | 1996-04-29 |
| Claws | 1994-03-17 |
| Fluffy | 1993-02-04 |
| Fang | 1990-08-27 |
| Bowser | 1989-08-31 |
| Buffy | 1989-05-13 |
+----------+------------+
Sie können auch nach mehreren Spalten und diese jeweils mit eigener Reihenfolge sortieren. Um beispielsweise nach der Tierart in aufsteigender, dann dem Geburtsdatum innerhalb der Tierart in absteigender Reihenfolge (d. h. das jüngste Tier zuerst nennend) zu sortieren, verwenden Sie die folgende Abfrage:
mysql>SELECT name, gattung, geburtstag FROM haustier
->ORDER BY gattung, geburtstag DESC;
+----------+----------+------------+ | name | gattung | geburtstag | +----------+----------+------------+ | Chirpy | Vogel | 1998-09-11 | | Whistler | Vogel | 1997-12-09 | | Claws | Katze | 1994-03-17 | | Fluffy | Katze | 1993-02-04 | | Fang | Hund | 1990-08-27 | | Bowser | Hund | 1989-08-31 | | Buffy | Hund | 1989-05-13 | | Puffball | Hamster | 1999-03-30 | | Slim | Schlange | 1996-04-29 | +----------+----------+------------+
Beachten Sie, dass das Schlüsselwort DESC
nur für den Spaltennamen gilt, dem es direkt vorangestellt
ist (geburtstag
); die Sortierreihenfolge
der Spalte gattung
wird hiervon nicht
berührt.
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.