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

Inhaltsverzeichnis:

Anonim

Ergebnisse sortieren

Mit dem Befehl SELECT 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 werden wir uns ansehen, wie wir unsere Abfrageergebnisse sortieren können. Beim Sortieren werden unsere Abfrageergebnisse einfach auf eine bestimmte Weise neu angeordnet. Das Sortieren kann für eine einzelne Spalte oder für mehr als eine Spalte durchgeführt werden. Dies kann für Zahlen-, Zeichenfolgen- und Datumsdatentypen erfolgen.

Was ist ORDER BY in MySQL?

MySQL ORDER BY wird in Verbindung mit der SELECT-Abfrage verwendet, um Daten ordnungsgemäß 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];

HIER

  • "SELECT-Anweisung ..." ist die reguläre Auswahlabfrage
  • "|" steht für Alternativen
  • "[WHERE-Bedingung | GROUP BY` Feldname (n) `HAVING-Bedingung" ist die optionale Bedingung, die zum Filtern der Abfrageergebnismengen verwendet wird.
  • "ORDER BY" führt die Sortierung der Abfrageergebnismenge durch
  • "[ASC | DESC]" ist das Schlüsselwort, mit dem Ergebnismengen in aufsteigender oder absteigender Reihenfolge sortiert werden. Hinweis ASC wird standardmäßig verwendet.

Was sind DESC- und ASC-Schlüsselwörter?

ASC ist die Kurzform für den Aufstieg

MySQL DESC ist die Kurzform für den Abstieg

Es wird verwendet, um die Abfrageergebnisse in einem Stil von oben nach unten zu sortieren.

Es wird verwendet, um die Abfrageergebnisse in einem Stil von unten nach oben zu sortieren

Bei der Bearbeitung von Datumsdatentypen wird das früheste Datum oben in der Liste angezeigt.

. Bei der Arbeit an Datumstypen wird das letzte Datum oben in der Liste angezeigt.

Bei der Arbeit mit numerischen Datentypen werden die niedrigsten Werte oben in der Liste angezeigt.

Bei der Arbeit mit numerischen Datentypen werden die höchsten Werte oben in der Abfrageergebnismenge angezeigt.

Bei der Arbeit mit Zeichenfolgendatentypen wird die Abfrageergebnismenge von denjenigen sortiert, die mit dem Buchstaben A beginnen und bis zum Buchstaben Z reichen.

Bei der Arbeit mit Zeichenfolgendatentypen wird die Abfrageergebnismenge von denjenigen sortiert, die mit dem Buchstaben Z beginnen und bis zum Buchstaben A reichen.

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

DESC- und ASC-Syntax

Das SQL DESC-Sortierschlüsselwort hat die folgende grundlegende Syntax.

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

HIER

  • SELECT {Feldname (n) | *} FROM tableName (s) ist die Anweisung, die die Felder und Tabellen enthält, aus denen die Ergebnismenge abgerufen werden soll .
  • [WHERE-Bedingung] ist optional, kann jedoch verwendet werden, um die Daten gemäß der angegebenen Bedingung zu filtern.
  • ORDER BY Feldname (n) ist obligatorisch und ist das Feld, in dem die Sortierung durchgeführt werden soll. Das Schlüsselwort MySQL DESC gibt an, dass die Sortierung in absteigender Reihenfolge erfolgen soll.
  • [LIMIT] ist optional, kann jedoch 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 Sie das obige Skript in der MySQL-Workbench für die myflixdb ausführen, erhalten Sie die folgenden Ergebnisse.

 
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 This email address is being protected from spambots. You need JavaScript enabled to view it.
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL This email address is being protected from spambots. You need JavaScript enabled to view it.
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 This email address is being protected from spambots. You need JavaScript enabled to view it.
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, dass die Details der Mitglieder in absteigender Reihenfolge des Geburtsdatums angeordnet werden. Dies wird ihnen helfen, Geburtstagsgrüße rechtzeitig zu senden. Wir können diese Liste erhalten, indem wir eine Abfrage wie unten ausführen -

SELECT * FROM members ORDER BY date_of_birth DESC;

Wenn Sie das obige Skript in der MySQL-Workbench für die myflixdb ausführen, erhalten Sie die folgenden Ergebnisse.

Dieselbe Abfrage in aufsteigender Reihenfolge

SELECT * FROM Mitglieder ORDER BY date_of_birth ASC

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

Mehr Beispiele

Betrachten wir das folgende Skript, in dem alle Mitgliedsdatensätze aufgelistet sind.

SELECT * FROM `members`;

Wenn Sie das obige Skript ausführen, erhalten Sie die folgenden Ergebnisse.

 
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 This email address is being protected from spambots. You need JavaScript enabled to view it.
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL This email address is being protected from spambots. You need JavaScript enabled to view it.
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 This email address is being protected from spambots. You need JavaScript enabled to view it.
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, in der die Abfrageergebnismenge anhand des Geschlechtsfelds sortiert wird, und verwenden das unten gezeigte Skript.

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 This email address is being protected from spambots. You need JavaScript enabled to view it.
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL This email address is being protected from spambots. You need JavaScript enabled to view it.
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 This email address is being protected from spambots. You need JavaScript enabled to view it.
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 wurden 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 die Sortierung anhand von zwei Spalten durchführt . Die erste Spalte ist standardmäßig in aufsteigender Reihenfolge sortiert, während die zweite Spalte in absteigender Reihenfolge sortiert ist .

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

Das Ausführen des obigen Skripts in der MySQL-Workbench gegen die myflixdb führt zu den folgenden Ergebnissen.

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 Videobibliotheksmitglied drucken, um Fragen an der Rezeption zu beantworten. Wäre es nicht logischer, die Zahlungen in absteigender chronologischer Reihenfolge zu drucken, beginnend mit der letzten Zahlung bis zur früheren Zahlung?

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

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

Das ASC-Schlüsselwort ist in solchen Situationen nützlich. Wir können die Filmliste nach Kategorienamen und Filmtitel in aufsteigender Reihenfolge sortieren.

Zusammenfassung

  • Durch das Sortieren der Abfrageergebnisse werden die von einer Abfrageergebnismenge zurückgegebenen Zeilen entweder in aufsteigender oder absteigender Reihenfolge neu angeordnet.
  • Das Schlüsselwort DESC in SQL wird verwendet, um die Abfrageergebnismenge in absteigender Reihenfolge zu sortieren.
  • Das ASC-Schlüsselwort wird verwendet, um die Abfrageergebnismenge in aufsteigender Reihenfolge zu sortieren.
  • Sowohl DESC als auch ASC arbeiten in Verbindung mit dem Schlüsselwort ORDER BY. Sie können auch in Kombination mit anderen Schlüsselwörtern wie WHERE-Klausel und LIMIT verwendet werden
  • Die Standardeinstellung für ORDER BY, wenn nichts explizit angegeben wurde, ist ASC.