Sortierung, der ORDER BY-Operator
Bei einer SELECT-Query werden Zeilen standardmäßig in einer nicht festgelegten Reihenfolge zurückgegeben. Die tatsächliche Reihenfolge hängt vom Join- und Scan-Plan sowie von der Anordnung der Daten auf der Festplatte ab — verlassen darfst du dich darauf also nicht. Für die geordnete Ausgabe nutzt du die Konstruktion ORDER BY.
Allgemeine Struktur einer Query mit ORDER BY
SELECT tabellen_felder FROM tabellen_name
[WHERE bedingung]
ORDER BY spalte [ASC | DESC] [, ...];- [ ]optionaler Teil
- a | beine der Optionen
- ...kann wiederholt werden
- tabellen_felder
- Die Spalten, die im Ergebnis landen.
- tabellen_name
- Die Tabelle, aus der die Daten ausgewählt werden.
- bedingung
Welche Zeilen vor dem Sortieren übrig bleiben.
Optional- spalte
Die Spalte, nach deren Werten die Zeilen geordnet werden. Du kannst mehrere Spalten durch Kommas getrennt angeben.
- ASC | DESC
Die Sortierrichtung: ASC aufsteigend (Standard), DESC absteigend.
SchlüsselwortOptionalASCDESC
Holen wir uns zum Beispiel die Namen der Airlines aus der Tabelle Company in alphabetischer Reihenfolge:
MySQL 8.4SELECT name FROM Company ORDER BY name;
Auf- und absteigende Sortierung für die wichtigsten Datentypen
Sortierung nach mehreren Spalten
Um nach zwei oder mehr Spalten zu sortieren, listest du sie durch Kommas getrennt auf.
ORDER BY spalte_1 [ASC | DESC], spalte_2 [ASC | DESC];- [ ]optionaler Teil
- a | beine der Optionen
- spalte_1
- Die Spalte, nach der die Zeilen zuerst sortiert werden.
- spalte_2
Die Spalte, nach der Zeilen mit gleichem Wert in spalte_1 sortiert werden.
- ASC | DESC
Die Sortierrichtung für die Spalte, hinter der sie steht. Standard ist ASC.
SchlüsselwortOptionalASCDESC
Die Daten werden nach der ersten Spalte sortiert. Treffen mehrere Zeilen mit demselben Wert in der ersten Spalte aufeinander, werden sie nach der zweiten Spalte sortiert. Die Anzahl der Spalten, nach denen du sortieren kannst, ist nicht begrenzt.
Holen wir die Flugdaten aus der Tabelle Trip, sortiert nach Abflugstadt aufsteigend und nach Ankunftsstadt absteigend:
MySQL 8.4SELECT DISTINCT town_from, town_to FROM Trip ORDER BY town_from, town_to DESC;
In diesem Beispiel werden die Einträge zuerst nach dem Feld town_from sortiert. Anschließend wird innerhalb der Gruppen mit gleichem town_from die absteigende Sortierung nach town_to angewendet.