MySQL ORDER BY (Sortierung)-Anweisung
Wir wissen, dass wir aus einer MySQL-Tabelle dieSELECT-Anweisung verwenden, um Daten zu lesen.
Wenn wir die gelesenen Daten sortieren müssen, können wir MySQLsORDER BY-Klausel verwenden, um anzugeben, welches Feld und auf welche Weise sortiert werden soll, und dann die Suchergebnisse zurückgeben.
MySQL ORDER BY (Sortierung)Die Anweisung kann nach den Werten einer oder mehrerer Spalten in aufsteigender (ASC) oder absteigender (DESC) Reihenfolge.
Syntax
Das Folgende ist eine SELECT-Anweisung, die dieORDER BY-Klausel verwendet, um die Abfragedaten zu sortieren und dann die Daten zurückzugeben:
SELECT column1, column2, ... FROM table_name ORDER BY column1 [ASC | DESC], column2 [ASC | DESC], ...;
Parameter description:
column1,column2, ... sind die Namen der Spalten, die Sie auswählen möchten. Wenn Sie*es bedeutet, alle Spalten auszuwählen.table_nameist der Name der Tabelle, aus der Sie Daten abfragen möchten.ORDER BY column1 [ASC | DESC], column2 [ASC | DESC], ...ist die Klausel, die verwendet wird, um die Sortierreihenfolge anzugeben.ASCbedeutet aufsteigende Reihenfolge (Standard),DESCbedeutet absteigende Sortierung.
Weitere Hinweise:
- Sie können jedes Feld als Sortierbedingung verwenden, um die sortierten Abfrageergebnisse zurückzugeben.
- Sie können mehrere Felder zum Sortieren festlegen.
- Sie können das Schlüsselwort ASC oder DESC verwenden, um festzulegen, ob die Abfrageergebnisse aufsteigend oder absteigend sortiert werden. Standardmäßig wird aufsteigend sortiert.
- Sie können eine WHERE...LIKE-Klausel hinzufügen, um Bedingungen festzulegen.
Beispiele
Im Folgenden finden Sie einige Beispiele für die Verwendung der ORDER BY-Klausel.
1. Sortierung nach einer einzelnen Spalte:
SELECT * FROM products ORDER BY product_name ASC;
Die obige SQL-Anweisung wählt alle Produkte aus der Tabelle products aus und sortiert sie nach dem Produktnamen in aufsteigender Reihenfolge (ASC).
2. Sortierung nach mehreren Spalten:
SELECT * FROM employees ORDER BY department_id ASC, hire_date DESC;
Die obige SQL-Anweisung wählt alle Mitarbeiter aus der Tabelle employees aus, sortiert zunächst nach der Abteilungs-ID in aufsteigender Reihenfolge (ASC) und dann innerhalb derselben Abteilung nach dem Einstellungsdatum in absteigender Reihenfolge (DESC).
3. Verwendung von Zahlen zur Angabe von Spaltenpositionen:
SELECT first_name, last_name, salary FROM employees ORDER BY 3 DESC, 1 ASC;
Die obige SQL-Anweisung wählt die Spalten name und salary aus der Tabelle employees aus, sortiert nach der dritten Spalte (salary) in absteigender Reihenfolge (DESC) und dann nach der ersten Spalte (first_name) in aufsteigender Reihenfolge (ASC).
4. Sortierung mithilfe von Ausdrücken:
SELECT product_name, price * discount_rate AS discounted_price FROM products ORDER BY discounted_price DESC;
Die obige SQL-Anweisung wählt den Produktnamen und den anhand des Rabattsatzes berechneten rabattierten Preis aus der Tabelle products aus und sortiert nach dem rabattierten Preis in absteigender Reihenfolge (DESC).
Ab MySQL 8.0.16 können Sie NULLS FIRST oder NULLS LAST verwenden, um NULL-Werte zu behandeln:
SELECT product_name, price FROM products ORDER BY price DESC NULLS LAST;
Die obige SQL-Anweisung wählt den Produktnamen und den Preis aus der Tabelle products aus und sortiert nach dem Preis in absteigender Reihenfolge (DESC), wobei NULL-Werte zuletzt platziert werden.
Wenn Sie dagegen möchten, dass NULL-Werte zuerst platziert werden, können Sie es so schreiben:
SELECT product_name, price FROM products ORDER BY price DESC NULLS FIRST;
Die ORDER BY-Klausel ist ein leistungsstarkes Werkzeug, das Abfrageergebnisse nach unterschiedlichen geschäftlichen Anforderungen sortieren kann. Achten Sie in praktischen Anwendungen darauf, geeignete Spalten und die Sortierreihenfolge auszuwählen, um den erwarteten Sortiereffekt zu erzielen.
Verwenden der ORDER BY-Klausel in der Eingabeaufforderung
Im Folgenden wird die ORDER BY-Klausel in einer SELECT-Anweisung verwendet, um Daten aus der MySQL-Tabelle example_tbl zu lesen:
Beispiel
Probieren Sie das folgende Beispiel aus. Die Ergebnisse werden in aufsteigender und absteigender Reihenfolge sortiert.
SQL-Sortierung
Alle Daten aus der Tabelle example_tbl lesen und in aufsteigender Reihenfolge nach dem Feld submission_date sortieren.
Verwendung der ORDER BY-Klausel in PHP-Skripten
Sie können die PHP-Funktion mysqli_query() und denselben SELECT-Befehl mit der ORDER BY-Klausel verwenden, um Daten abzurufen.
Diese Funktion wird verwendet, um den SQL-Befehl auszuführen, und dann alle abgefragten Daten mit der PHP-Funktion mysqli_fetch_array() auszugeben.
Beispiel
Probieren Sie das folgende Beispiel aus. Die abgefragten Daten werden nach dem Feld submission_date in absteigender Reihenfolge sortiert zurückgegeben.
MySQL ORDER BY Test:
Das Ausgabeergebnis ist in der folgenden Abbildung dargestellt: