Dieses Tutorial erklärt die MySQL ORDER BY Klausel und ihre Verwendung mit den beiden Optionen ASC und DESC. Wir werden diese MySQL-Anweisung anhand einfacher Beispiele beschreiben.

1. ORDER BY-Klausel Syntax
2. ORDER BY W/O ASC oder DESC
3. ORDER BY DESC
4. ORDER BY Relative Position
5. ORDER BY Two Fields ASC & DESC

Lassen Sie uns nun die einzelnen Abschnitte der Reihe nach durchgehen.

MySQL ORDER BY Clause

Der MySQL SELECT Befehl gibt standardmäßig keine sortierte Ergebnismenge zurück. Um die Ausgabe zu sortieren, müssen Sie daher die ORDER BY-Klausel in der SELECT-Abfrage anhängen. Mit der ORDER BY-Klausel können wir Folgendes erreichen:

  • Sortieren von Datensätzen nach einem/mehreren Feldern
  • Sortieren der Zeilen nach bestimmten Spalten in aufsteigender (ASC) oder absteigender (DESC) Reihenfolge.

Im Folgenden wird die Syntax der ORDER BY-Klausel erläutert:

Syntax

# MySQL ORDER BY ClauseSELECT field1, field2,...FROM target_tableORDER BY field1 , field2 ,...

Die ORDER BY-Klausel führt standardmäßig eine Sortierung in aufsteigender Reihenfolge durch. Der Begriff ASC ist ein Akronym für aufsteigend, während DESC für absteigend steht. Für DESC müssen Sie es in Ihrer SELECT-Abfrage erwähnen.

Bitte beachten Sie, dass Sie in MySQL sogar einen Ausdruck mit ORDER BY angeben können. Außerdem sind die beiden Optionen ASC und DESC für diese Anweisung optional.

Hier sind einige Beispielübungen zum Üben.

MySQL ORDER BY Klausel Beispiele

Lassen Sie uns überprüfen, wie man die ORDER BY Klausel mit MySQL SELECT Abfragen verwendet.

Verwendung der Order-By-Klausel ohne asc/desc-Option

Zur Veranschaulichung erstellen wir zunächst eine Tabelle mit dem Namen Sample und füllen sie mit einigen Testdaten.

CREATE TABLE Sample ( sample_id int NOT NULL, sample_name VARCHAR(20), vendor_name VARCHAR(20), sample_size INT );

Als Nächstes fügen wir einige Dummy-Daten für unsere Tests ein.

Danach müssen wir den Inhalt unserer Tabelle Sample überprüfen. Siehe unten.

SELECT *FROM Sample;

Die Ausgabe sieht wie folgt aus:

Nun werden wir die ORDER BY-Klausel auf das Feld „vendor_name“ anwenden. Und wir beobachten die Ergebnismenge, die wir von der MySQL-Datenbank erhalten:

SELECT *FROM SampleORDER BY vendor_name;

Sie erhalten ein Ergebnis, das die folgende Ausgabe zeigt:

Aus der obigen Ergebnismenge können Sie ersehen, dass die Sortierung in der standardmäßigen aufsteigenden Reihenfolge erfolgt ist.

In absteigender Reihenfolge sortieren

In diesem Beispiel demonstrieren wir die ORDER BY-Klausel zum Sortieren in absteigender Reihenfolge. Dazu müssen wir sie explizit angeben.

Hier ist die MySQL-Anweisung, um in absteigender Reihenfolge zu sortieren:

SELECT *FROM SampleORDER BY vendor_name DESC;

Die Ausgabe von SELECT ist:

Nach Feld an relativer Position sortieren

Es ist möglich, die MySQL ORDER BY-Klausel zu verwenden, um nach einem Feld an einer RELATIVEN Position zu sortieren.

Wenn wir in der SELECT-Abfrage Spaltennamen angeben, befindet sich das erste Feld an Position eins, das zweite an Position zwei und so weiter. Außerdem können wir diese Tatsache anhand eines Beispiels überprüfen.

Hier ist eine SELECT-Anweisung, die Felder anzeigt und nach einer relativen Position sortiert.

SELECT # pos_1 pos_2 pos_3 pos_4 sample_id, sample_name, vendor_name, sample_sizeFROM SampleORDER BY 4 DESC;

Hier ist die Ergebnismenge, die Sie nach Ausführung des obigen Befehls erhalten:

Sie sehen, dass MySQL nach dem Feld sample_size sortiert hat, das der vierten Spalte entspricht.

ORDER BY zum Sortieren nach zwei Spalten verwenden

Wir hatten bereits erwähnt, dass Sie ORDER BY für ein oder mehrere Felder verwenden können. In einem solchen Fall behandelt MySQL das erste Feld als primär und das zweite als sekundär. Daher wird zuerst das primäre und dann das zweite Feld sortiert.

In diesem Beispiel demonstrieren wir ORDER BY für zwei Spalten, ein Feld als ASC und ein anderes als DESC. Außerdem müssen wir weitere Datensätze einfügen, um zu zeigen, dass auch die zweite Spalte sortiert wird.

Sie können die INSERT-Anweisung am Anfang des Beispiels ignorieren und die unten stehende verwenden.

Jetzt haben wir einige Zeilen mit denselben Anbieternamen, aber unterschiedlichen Stichprobengrößen. Wir sortieren nun nach den Feldern vendor_name (primär) und sample_size (sekundär).

SELECT sample_id, sample_name, vendor_name, sample_sizeFROM SampleORDER BY vendor_name ASC, sample_size DESC;

Diese MySQL-Anweisung führt zu folgendem Ergebnis:

Sie können sehen, dass alle Werte im primären Feld in aufsteigender Reihenfolge sortiert wurden. Außerdem ist aus der Ausgabe ersichtlich, dass die Sortierung (in DESC) auch für das zweite Feld erfolgt ist.

Nun wollen wir herausfinden, was das Ergebnis wäre, wenn wir nur nach dem Lieferantennamen sortiert hätten.

SELECT sample_id, sample_name, vendor_name, sample_sizeFROM SampleORDER BY vendor_name ASC;

Dieser Befehl ergibt folgendes Ergebnis:

Aus dem obigen Ergebnis können wir ersehen, dass die Zeilen von Google und Twitter nicht nach ihrem Stichprobenumfang sortiert wurden.

Wir hoffen, dass Sie sich nach Abschluss dieses Tutorials bei der Verwendung der MySQL ORDER BY-Klausel sicher fühlen. Sie können jedoch noch mehr mit Beispielen üben, um Vertrauen zu gewinnen.

Um SQL von Grund auf zu lernen, lesen Sie auch unser MySQL-Tutorial Schritt für Schritt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.