ORDER BY in MySQL: DESC- und ASC-Abfrage mit BEISPIEL

Ergebnisse sortieren

Mit dem SELECT-Befehl wurden die Ergebnisse in derselben Reihenfolge zurückgegeben, in der die Datensätze zur Datenbank hinzugefügt wurden. Dies ist die Standardsortierreihenfolge. In diesem Abschnitt schauen wir uns an, wie wir unsere Abfrageergebnisse sortieren können. Beim Sortieren geht es einfach darum, unsere Abfrageergebnisse auf eine bestimmte Weise neu anzuordnen. Die Sortierung kann für eine einzelne Spalte oder für mehr als eine Spalte durchgeführt werden. Dies kann sowohl für Zahlen-, Zeichenfolgen- als auch für Datumsdatentypen durchgeführt werden.

Was ist ORDER BY in MySQL?

MySQL ORDER BY wird in Verbindung mit der SELECT-Abfrage verwendet, um Daten geordnet zu sortieren. Die MySQL ORDER BY-Klausel wird verwendet, um die Abfrageergebnismengen entweder in aufsteigender oder absteigender Reihenfolge zu sortieren.

SELECT statement... [WHERE condition | GROUP BY `field_name(s)` HAVING condition] ORDER BY `field_name(s)` [ASC | DESC];

KLICKEN SIE HIER

  • "SELECT-Anweisung... " ist die reguläre Auswahlabfrage
  • “ | „ stellt Alternativen dar
  • „[WHERE-Bedingung | GROUP BY „Feldname(n)“ HAVING-Bedingung“ ist die optionale Bedingung, die zum Filtern der Abfrageergebnissätze verwendet wird.
  • "SORTIEREN NACH" Führt die Sortierung der Abfrageergebnismenge durch
  • „[ASC | BESCHR.]“ ist das Schlüsselwort, mit dem Ergebnismengen entweder in aufsteigender oder absteigender Reihenfolge sortiert werden. Notiz ASC wird als Standard verwendet.
  • Was sind DESC- und ASC-Schlüsselwörter?

    DESC- und ASC-SchlüsselwörterASC ist die Kurzform für aufsteigend DESC- und ASC-SchlüsselwörterMySQL DESC ist die Kurzform für absteigend
    Es wird verwendet, um die Abfrageergebnisse von oben nach unten zu sortieren. Es wird verwendet, um die Abfrageergebnisse von unten nach oben zu sortieren
    Beim Arbeiten mit Datumsdatentypen wird das früheste Datum oben in der Liste angezeigt. . Beim Arbeiten mit Datumstypen wird das neueste Datum oben in der Liste angezeigt.
    Beim Arbeiten mit numerischen Datentypen werden die niedrigsten Werte oben in der Liste angezeigt. Beim Arbeiten mit numerischen Datentypen werden die höchsten Werte oben im Abfrageergebnissatz angezeigt.
    Bei der Arbeit mit Zeichenfolgendatentypen wird die Abfrageergebnismenge von den Datentypen beginnend mit dem Buchstaben A bis zum Buchstaben Z sortiert. Bei der Arbeit mit Zeichenfolgendatentypen wird die Abfrageergebnismenge von den Datentypen beginnend mit dem Buchstaben Z bis hinunter zum Buchstaben A sortiert.

    Sowohl die SQL-Schlüsselwörter DESC als auch ASC werden zusammen mit der SELECT-Anweisung und der MySQL-ORDER BY-Klausel verwendet.


    DESC- und ASC-Syntax

    Das SQL DESC-Sortierschlüsselwort hat folgenden Inhaltwing grundlegende Syntax.

    SELECT {fieldName(s) | *} FROM tableName(s) [WHERE condition] ORDER BY fieldname(s) ASC /DESC [LIMIT N]

    KLICKEN SIE HIER

    • SELECT {fieldName(s) | *} FROM Tabellenname(n) ist die Anweisung, die die Felder und Tabellen enthält, aus denen die Ergebnismenge abgerufen werden soll.
    • [WHERE-Bedingung] ist optional, kann aber verwendet werden, um die Daten entsprechend der angegebenen Bedingung zu filtern.
    • SORTIEREN NACH Feldname(n) ist obligatorisch und ist das Feld, für das die Sortierung durchgeführt werden soll. Das MySQL-Schlüsselwort DESC gibt an, dass die Sortierung in absteigender Reihenfolge erfolgen soll.
    • [GRENZE] ist optional, kann aber verwendet werden, um die Anzahl der von der Abfrageergebnismenge zurückgegebenen Ergebnisse zu begrenzen.

    Beispiele:

    Schauen wir uns nun ein praktisches Beispiel an –

    SELECT * FROM members;

    Wenn wir das obige Skript in der MySQL-Workbench für die myflixdb ausführen, erhalten wir Folgendeswing Die Ergebnisse werden unten angezeigt.

membership_number full_names gender date_of_birth physical_address postal_address contct_number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 rm@tstreet.com
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL
5 Leonard Hofstadter Male NULL Woodcrest NULL 845738767 NULL
6 Sheldon Cooper Male NULL Woodcrest NULL 976736763 NULL
7 Rajesh Koothrappali Male NULL Woodcrest NULL 938867763 NULL
8 Leslie Winkle Male 14-02-1984 Woodcrest NULL 987636553 NULL
9 Howard Wolowitz Male 24-08-1981 SouthPark P.O. Box 4563 987786553


Nehmen wir an, die Marketingabteilung möchte die Mitglieder details in absteigender Reihenfolge nach Geburtsdatum geordnet. Dies wird ihnen helfen, rechtzeitig Geburtstagsgrüße zu versenden. Wir können die besagte Liste erhalten, indem wir eine Abfrage wie unten ausführen:

SELECT * FROM members ORDER BY date_of_birth DESC;

Wenn wir das obige Skript in der MySQL-Workbench für die myflixdb ausführen, erhalten wir Folgendeswing Die Ergebnisse werden unten angezeigt.

DESC- und ASC-Beispiel

Dieselbe Abfrage in aufsteigender Reihenfolge

SELECT * FROM member ORDER BY date_of_birth ASC

DESC- und ASC-Beispiel

Hinweis: NULL-Werte bedeuten keine Werte (nicht Null oder leere Zeichenfolge). Beobachten Sie die Art und Weise, wie sie sortiert wurden.

Weitere Beispiele

Betrachten wir Folgendeswing SQL-Sortierskript, das alle Mitgliedsdatensätze auflistet.

SELECT * FROM `members`;

Das Ausführen des obigen Skripts führt zu folgendem Ergebniswing Die Ergebnisse werden unten angezeigt.

membership_number full_names gender date_of_birth physical_address postal_address contct_number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 rm@tstreet.com
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL
5 Leonard Hofstadter Male NULL Woodcrest NULL 845738767 NULL
6 Sheldon Cooper Male NULL Woodcrest NULL 976736763 NULL
7 Rajesh Koothrappali Male NULL Woodcrest NULL 938867763 NULL
8 Leslie Winkle Male 14-02-1984 Woodcrest NULL 987636553 NULL
9 Howard Wolowitz Male 24-08-1981 SouthPark P.O. Box 4563 987786553 NULL


Angenommen, wir möchten eine Liste erhalten, die die Abfrageergebnismenge nach dem Feld „Geschlecht“ sortiert, dann würden wir das unten gezeigte Skript verwenden.

SELECT * FROM `members` ORDER BY `gender`;
membership_number full_names gender date_of_birth physical_address postal_address contct_number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 rm@tstreet.com
5 Leonard Hofstadter Male NULL Woodcrest NULL 845738767 NULL
6 Sheldon Cooper Male NULL Woodcrest NULL 976736763 NULL
7 Rajesh Koothrappali Male NULL Woodcrest NULL 938867763 NULL
8 Leslie Winkle Male 14-02-1984 Woodcrest NULL 987636553 NULL
9 Howard Wolowitz Male 24-08-1981 SouthPark P.O. Box 4563 987786553 NULL

„Weibliche“ Mitglieder werden zuerst angezeigt, gefolgt von „männlichen“ Mitgliedern. Dies liegt daran, dass MySQL die Abfrageergebnismenge standardmäßig in aufsteigender Reihenfolge sortiert hat, wenn die ORDER BY DESC-Klausel ohne Angabe des ASC- oder MySQL-DESC-Schlüsselworts verwendet wird.

Schauen wir uns nun ein Beispiel an, das dies tut Sortieren nach zwei Spalten; der erste ist sortiert in aufsteigende Reihenfolge standardmäßig, während die zweite Spalte ist sortiert in absteigende Reihenfolge.

SELECT * FROM `members` ORDER BY `gender`,`date_of_birth` DESC;

Das Ausführen des obigen Skripts in der MySQL-Workbench für die myflixdb führt zu folgendem Ergebniswing Ergebnisse angezeigt

DESC- und ASC-Beispiel

Die Spalte „Geschlecht“ wurde standardmäßig in aufsteigender Reihenfolge sortiert, während die Spalte „Geburtsdatum“ explizit in absteigender Reihenfolge sortiert wurde

Warum dürfen wir DESC und ASC verwenden?

Angenommen, wir möchten einen Zahlungsverlauf für ein Mitglied der Videothek ausdrucken, um die Beantwortung von Anfragen an der Rezeption zu erleichtern. Wäre es dann nicht logischer, die Zahlungen in absteigender chronologischer Reihenfolge, beginnend mit der letzten Zahlung bis zur früheren Zahlung, auszudrucken?

DESC in SQL ist ein Schlüsselwort, das in solchen Situationen nützlich ist. Wir können eine Abfrage schreiben, die die Liste anhand des Zahlungsdatums in absteigender Reihenfolge sortiert.

Angenommen, die Marketingabteilung möchte eine Liste von Filmen nach Kategorien erhalten, anhand derer Mitglieder beim Ausleihen von Filmen entscheiden können, welche Filme in der Bibliothek verfügbar sind. Wäre es dann nicht logischer, die Namen und Titel der Filmkategorien aufsteigend zu sortieren? Mitglieder können die Informationen in der Liste schnell nachschlagen?

Das Schlüsselwort ASC ist in solchen Situationen praktisch; Wir können die Filmliste nach Kategoriename und Filmtitel in aufsteigender Reihenfolge sortieren lassen.

Zusammenfassung

  • Beim Sortieren von Abfrageergebnissen werden die von einem Abfrageergebnissatz zurückgegebenen Zeilen entweder in aufsteigender oder absteigender Reihenfolge neu angeordnet.
  • Das Schlüsselwort DESC wird in SQL verwendet, um die Abfrageergebnismenge in absteigender Reihenfolge zu sortieren.
  • Das Schlüsselwort ASC wird verwendet, um die Abfrageergebnismenge in aufsteigender Reihenfolge zu sortieren.
  • Sowohl DESC als auch ASC funktionieren in Verbindung mit dem Schlüsselwort ORDER BY. Sie können auch in Kombination mit anderen Schlüsselwörtern verwendet werden, z WHERE-Klausel und GRENZE
  • Der Standardwert für ORDER BY ist ASC, wenn nichts explizit angegeben wurde.