BESTELLEN NACH in MySQLASC- und DESC-Abfrage mit Beispiel

โšก Intelligente Zusammenfassung

BESTELLEN NACH in MySQL Die Abfrageergebnisse werden mithilfe der Schlรผsselwรถrter ASC und DESC aufsteigend oder absteigend sortiert. In den folgenden Abschnitten werden die Syntax, die Sortierung in ein- und mehrspaltigen Datensรคtzen, die Behandlung von NULL-Werten sowie Anwendungsbeispiele anhand der Beispieldatenbank myflixdb erlรคutert.

  • ๐Ÿ”  Standardverhalten: ORDER BY sortiert in aufsteigender Reihenfolge, wenn weder ASC noch DESC angegeben ist; daher ist ASC in den meisten Anweisungen optional.
  • โฌ†๏ธ ASC-Schlรผsselwort: ASC ordnet Zahlen von der kleinsten zur grรถรŸten, Zeichenketten von A bis Z und Daten vom frรผhesten zum spรคtesten.
  • โฌ‡๏ธ BESCHREIBUNG Schlรผsselwort: DESC kehrt diese Reihenfolge um, was fรผr Zahlungshistorien mit den neuesten Eintrรคgen zuerst und absteigende Geburtsdatumslisten geeignet ist.
  • ๐Ÿงฎ Sortierung รผber mehrere Spalten: Die Spaltenreihenfolge ist wichtig. ORDER BY gender, date_of_birth DESC sortiert zuerst nach Geschlecht aufsteigend und dann innerhalb jeder Gruppe nach Geburtsdatum absteigend.
  • ๐Ÿ”Ž Klauselkombination: WHERE filtert Zeilen, GROUP BY aggregiert sie, ORDER BY sortiert das Ergebnis und LIMIT kรผrzt es.
  • โš™๏ธ Leistungsfaktor: Ein Index auf der sortierten Spalte ermรถglicht MySQL um eine Dateisortierung bei groรŸen Tabellen zu vermeiden.

BESTELLEN NACH in MySQL

Was ist ORDER BY in? MySQL?

MySQL SORTIEREN NACH ist eine Klausel, die in Verbindung mit der SELECT-Abfrage verwendet wird, um Daten in geordneter Weise zu sortieren. MySQL Die ORDER BY-Klausel sortiert das Abfrageergebnis entweder aufsteigend oder absteigend, nach einer oder nach mehreren Spalten gleichzeitig.

Wird der SELECT-Befehl allein verwendet, werden die Zeilen in der Reihenfolge zurรผckgegeben, in der die Speicher-Engine sie liest. Diese Reihenfolge ist nicht garantiert. Sortieren bedeutet, diese Zeilen in einer festgelegten Reihenfolge neu anzuordnen. Dies ist fรผr numerische Daten, Zeichenketten und Datumsangaben gleichermaรŸen mรถglich.

MySQL ORDER BY Syntax

Bevor wir uns Beispiele ansehen, ist es hilfreich zu sehen, wo die Klausel innerhalb einer vollstรคndigen SELECT-Anweisung steht.

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

HIER KLICKEN

  • "SELECT-Anweisung... " ist die regulรคre SELECT-Abfrage.
  • โ€œ | โ€ž stellt Alternativen dar.
  • โ€œ[WHERE Bedingung | GROUP BY `Feldname(n)` HAVING Bedingung]โ€ ist die optionale Bedingung, die zum Filtern des Abfrageergebnisses verwendet wird.
  • "SORTIEREN NACH" Fรผhrt die Sortierung des Abfrageergebnisses durch.
  • โ€ž[ASC | BESCHR.]โ€œ ist das Schlรผsselwort, mit dem die Ergebnismenge entweder aufsteigend oder absteigend sortiert wird. Beachten Sie, dass ASC ist die Vorgabe.

Was sind DESC- und ASC-Schlรผsselwรถrter?

ASC und DESC sind die beiden Sortierrichtungen, die ORDER BY akzeptiert. Die folgende Tabelle vergleicht sie anhand der Datentypen, die Sie am hรคufigsten sortieren werden.

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 dient dazu, die Abfrageergebnisse von unten nach oben zu sortieren.
Beim Arbeiten mit Datumsdatentypen wird das frรผheste Datum oben in der Liste angezeigt. Bei der Arbeit mit Datumsdatentypen wird das neueste Datum oben in der Liste angezeigt.
Beim Arbeiten mit numerischen Datentypen werden die niedrigsten Werte oben in der Liste angezeigt. Bei der Arbeit mit numerischen Datentypen werden die hรถchsten Werte oben im Abfrageergebnis 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.

Die SQL-Schlรผsselwรถrter DESC und ASC werden beide in Verbindung mit der SELECT-Anweisung verwendet. MySQL ORDER BY-Klausel.

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 KLICKEN

  • SELECT {fieldName(s) | *} FROM Tabellenname(n) ist die Anweisung, die die Felder und die Tabelle(n) enthรคlt, aus denen das Ergebnis-Set 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 benennt das Feld, nach dem sortiert wird. MySQL Das Schlรผsselwort DESC gibt an, dass die Sortierung in absteigender Reihenfolge erfolgt.
  • [LIMIT N] ist optional, kann aber verwendet werden, um die Anzahl der vom Abfrageergebnis zurรผckgegebenen Zeilen zu begrenzen.

Warum DESC und ASC verwenden? MySQL?

Die Kenntnis der Syntax ist nur die halbe Wahrheit. Der Grund fรผr die Existenz von ORDER BY ist, dass ein Ergebnis-Set, das fรผr eine Datenbank leicht zu erzeugen ist, nicht immer leicht fรผr einen Menschen lesbar ist.

Angenommen, Sie drucken die Zahlungshistorie eines Videobibliotheksmitglieds aus, damit die Mitarbeiter an der Ausleihe Anfragen schnell beantworten kรถnnen. Es ist wesentlich logischer, die Zahlungen in absteigender chronologischer Reihenfolge auszugeben, beginnend mit der aktuellsten und rรผckwรคrts bis zur รคltesten. In diesem Fall ist das SQL-Schlรผsselwort DESC sehr hilfreich, da die Liste nach dem Zahlungsdatum sortiert werden kann.

Angenommen, die Marketingabteilung benรถtigt eine Liste von Filmen nach Kategorien, damit Mitglieder vor dem Ausleihen sehen kรถnnen, welche Titel die Bibliothek bietet. Durch das Sortieren der Kategorienamen und Filmtitel in aufsteigender Reihenfolge kรถnnen Mitglieder Informationen schnell finden, genau wie in einem Index. Das ASC-Schlรผsselwort dient diesem Zweck.

Kurz gesagt, ORDER BY wandelt ein Rohdatenset in einen Bericht um. Das gewรคhlte Schlรผsselwort hรคngt von der Frage des Lesers ab: was zuletzt geschah fordert DESC, wรคhrend Wo finde ich diesen Artikel? fordert ASC.

MySQL Beispiel zum Sortieren nach

Alle folgenden Beispiele werden mit der Beispieldatenbank myflixdb ausgefรผhrt. Beginnen Sie mit der unsortierten Mitgliedertabelle, die in ihrer Standardreihenfolge zurรผckgegeben wird.

SELECT * FROM members;

Ausfรผhren des obigen Skripts in MySQL Die Workbench-Analyse von myflixdb liefert die unten aufgefรผhrten Ergebnisse.

Mitgliedsnummer ganze Namen Geschlecht Geburtsdatum physikalische Adresse Postanschrift Kontaktnummer E-Mail
1 Janet Jones Weiblich 21-07-1980 Erstes StraรŸengrundstรผck Nr. 4 Private Tasche 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Weiblich 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
3 Robert Phil Mรคnnlich 12-07-1989 3. StraรŸe 34 NULL 12345 rm@tstreet.com
4 Gloria Williams Weiblich 14-02-1984 2. StraรŸe 23 NULL NULL NULL
5 Leonhard Hofstรคdter Mรคnnlich NULL Waldkrone NULL 845738767 NULL
6 Sheldon Cooper Mรคnnlich NULL Waldkrone NULL 976736763 NULL
7 Rajesh Koothrappali Mรคnnlich NULL Waldkrone NULL 938867763 NULL
8 Leslie Winkel Mรคnnlich 14-02-1984 Waldkrone NULL 987636553 NULL
9 Howard Wolowitz Mรคnnlich 24-08-1981 Sรผd Park P.O. Box 14473 987786553 NULL

Sortieren in absteigender Reihenfolge mit DESC

Angenommen, die Marketingabteilung mรถchte die Mitgliederdaten in absteigender Reihenfolge des Geburtsdatums sortieren. Dies hilft dem Team, GeburtstagsgrรผรŸe rechtzeitig zu versenden. Die Liste wird durch die unten stehende Abfrage erstellt.

SELECT * FROM members ORDER BY date_of_birth DESC;

Ausfรผhren des obigen Skripts in MySQL Die Workbench-Analyse von myflixdb liefert die unten aufgefรผhrten Ergebnisse.

MySQL Ergebnis der Abfrage ORDER BY DESC

Sortieren in aufsteigender Reihenfolge mit ASC

Die gleiche Abfrage in aufsteigender Reihenfolge vertauscht einfach das Schlรผsselwort.

SELECT * FROM members ORDER BY date_of_birth ASC;

MySQL Ergebnis der Abfrage ORDER BY ASC

Hinweis: NULL bedeutet, dass รผberhaupt kein Wert vorhanden ist, was nicht dasselbe ist wie Null oder eine leere Zeichenkette. Beachten Sie in beiden Screenshots, wie die NULL-Datumsangaben gruppiert sind: MySQL Behandelt NULL als niedriger als jeden anderen Wert, daher erscheinen NULL-Zeilen in der aufsteigenden Reihenfolge (ASC) zuerst und in der absteigenden Reihenfolge (DESC) zuletzt.

Wie man nach mehreren Spalten sortiert in MySQL

Das Sortieren nach einer einzelnen Spalte beantwortet einfache Fragen. Berichte benรถtigen in der Regel eine zweite Sortierebene, und ORDER BY akzeptiert eine durch Kommas getrennte Liste von Feldern genau fรผr diesen Zweck.

Betrachten Sie das folgende SQL-Sortierskript, das alle Mitgliedsdatensรคtze ohne explizite Anweisung auflistet.

SELECT * FROM `members`;

Die Ausfรผhrung des obigen Skripts fรผhrt zu den unten gezeigten Ergebnissen.

Mitgliedsnummer ganze Namen Geschlecht Geburtsdatum physikalische Adresse Postanschrift Kontaktnummer E-Mail
1 Janet Jones Weiblich 21-07-1980 Erstes StraรŸengrundstรผck Nr. 4 Private Tasche 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Weiblich 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
3 Robert Phil Mรคnnlich 12-07-1989 3. StraรŸe 34 NULL 12345 rm@tstreet.com
4 Gloria Williams Weiblich 14-02-1984 2. StraรŸe 23 NULL NULL NULL
5 Leonhard Hofstรคdter Mรคnnlich NULL Waldkrone NULL 845738767 NULL
6 Sheldon Cooper Mรคnnlich NULL Waldkrone NULL 976736763 NULL
7 Rajesh Koothrappali Mรคnnlich NULL Waldkrone NULL 938867763 NULL
8 Leslie Winkel Mรคnnlich 14-02-1984 Waldkrone NULL 987636553 NULL
9 Howard Wolowitz Mรคnnlich 24-08-1981 Sรผd Park P.O. Box 14473 987786553 NULL

Sortieren einer einzelnen Spalte nach Standardreihenfolge

Angenommen, wir mรถchten eine Liste erstellen, die die Suchergebnisse nach dem Feld โ€žGeschlechtโ€œ sortiert. Das folgende Skript erledigt dies, ohne eine Sortierrichtung anzugeben.

SELECT * FROM `members` ORDER BY `gender`;
Mitgliedsnummer ganze Namen Geschlecht Geburtsdatum physikalische Adresse Postanschrift Kontaktnummer E-Mail
1 Janet Jones Weiblich 21-07-1980 Erstes StraรŸengrundstรผck Nr. 4 Private Tasche 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Weiblich 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
4 Gloria Williams Weiblich 14-02-1984 2. StraรŸe 23 NULL NULL NULL
3 Robert Phil Mรคnnlich 12-07-1989 3. StraรŸe 34 NULL 12345 rm@tstreet.com
5 Leonhard Hofstรคdter Mรคnnlich NULL Waldkrone NULL 845738767 NULL
6 Sheldon Cooper Mรคnnlich NULL Waldkrone NULL 976736763 NULL
7 Rajesh Koothrappali Mรคnnlich NULL Waldkrone NULL 938867763 NULL
8 Leslie Winkel Mรคnnlich 14-02-1984 Waldkrone NULL 987636553 NULL
9 Howard Wolowitz Mรคnnlich 24-08-1981 Sรผd Park P.O. Box 14473 987786553 NULL

Zuerst werden die weiblichen Mitglieder angezeigt, gefolgt von den mรคnnlichen. Dies liegt daran, dass bei Verwendung der ORDER BY-Klausel ohne Angabe der Sortierreihenfolge (ASC) oder MySQL DESC-Schlรผsselwort, MySQL Sortiert das Abfrageergebnis standardmรครŸig in aufsteigender Reihenfolge.

Sortieren zweier Spalten in entgegengesetzte Richtungen

Betrachten wir nun ein Beispiel, das Folgendes ausfรผhrt: Sortieren nach zwei SpaltenDie erste Spalte ist sortiert in aufsteigende Reihenfolge standardmรครŸig, wรคhrend die zweite Spalte sortiert in absteigende Reihenfolge.

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

Ausfรผhren des obigen Skripts in MySQL Workbench gegen myflixdb liefert die folgenden Ergebnisse.

MySQL Beispiel fรผr ORDER BY mit zwei Spalten

Die Spalte โ€žGeschlechtโ€œ war standardmรครŸig aufsteigend sortiert, die Spalte โ€žGeburtsdatumโ€œ hingegen explizit absteigend. Jedes Richtungs-Schlรผsselwort gilt nur fรผr die Spalte, auf die es folgt.

Wie man ORDER BY mit WHERE, LIMIT und GROUP BY kombiniert

ORDER BY ist selten die einzige Klausel in einer Produktionsabfrage. MySQL Die Klauseln werden immer in einer festen Reihenfolge ausgewertet, und die Kenntnis dieser Reihenfolge erklรคrt, warum die Ergebnisse so aussehen, wie sie aussehen.

  1. AB Liest die Zeilen aus der Tabelle.
  2. WO Die Zeilen, die die Bedingung nicht erfรผllen, werden verworfen.
  3. GRUPPIERE NACH Die verbleibenden Zeilen werden zu Gruppen zusammengefasst, und HAVING filtert diese Gruppen.
  4. SORTIEREN NACH Sequenzen der verbleibenden Zeilen.
  5. LIMIT Schneidet die angeforderte Anzahl von Zeilen aus der sortierten Liste ab.

Da ORDER BY nach WHERE und GROUP BY, aber vor LIMIT ausgefรผhrt wird, kann eine Abfrage wie โ€ždie fรผnf jรผngsten Mitglieder von Woodcrestโ€œ in einer einzigen Anweisung ausgedrรผckt werden.

SELECT full_names, date_of_birth FROM members
WHERE physical_address = 'Woodcrest'
ORDER BY date_of_birth DESC
LIMIT 5;

Die gleiche Reihenfolge gilt fรผr gruppierte Ergebnisse. Aggregatwerte, die von Aggregatfunktionen Beispielsweise kann die Anzahl sortiert werden, sodass die am stรคrksten frequentierte Kategorie ganz oben im Bericht erscheint.

SELECT gender, COUNT(*) AS members_count FROM members
GROUP BY gender
ORDER BY members_count DESC;

TIPP: Mit ORDER BY kann nach einem Spaltenalias, einem Ausdruck oder sogar nach der Spaltenposition sortiert werden, z. B. mit ORDER BY 3. Die Sortierung nach Position ist jedoch fehleranfรคllig, da das Einfรผgen einer neuen Spalte in die SELECT-Liste den Sortierschlรผssel stillschweigend รคndert. Benennen Sie die Spalte stattdessen.

Ein wichtiger Leistungsaspekt sollte beachtet werden. Wenn die sortierte Spalte einen Index enthรคlt, MySQL Die Zeilen kรถnnen in Indexreihenfolge gelesen werden, wodurch die Sortierung komplett รผbersprungen wird. Ohne Index erzwingen groรŸe Tabellen eine Sortierung im Arbeitsspeicher oder auf der Festplatte, was รผblicherweise die Ursache fรผr langsame Berichtsabfragen ist.

Hรคufig gestellte Fragen

Das ist mรถglich. Ohne einen Index fรผr die sortierte Spalte, MySQL Fรผhrt eine Dateisortierung รผber das gesamte Ergebnis-Set durch. Durch Hinzufรผgen eines Index, der der ORDER BY-Spalte und -Richtung entspricht, kann der Server die Zeilen der Reihe nach lesen und diesen Schritt รผberspringen.

Normalerweise nicht. Standardsortierungen wie utf8mb4_0900_ai_ci unterscheiden nicht zwischen GroรŸ- und Kleinschreibung, daher werden โ€žappleโ€œ und โ€žAppleโ€œ zusammen sortiert. Eine binรคre oder _cs-Sortierung oder die Anweisung ORDER BY BINARY Spaltenname fรผhrt zu einer Sortierung, bei der GroรŸbuchstaben zuerst stehen.

Ja. ORDER BY RAND() mischt die Ergebnismenge, was praktisch ist, um einen zufรคlligen Film oder ein zufรคlliges Mitglied auszuwรคhlen. Jede Zeile wird vor dem Sortieren bewertet, daher sollte man es mit LIMIT kombinieren und bei sehr groรŸen Tabellen vermeiden.

Ja. KI-Hilfsprogramme sind in Tools wie beispielsweise โ€ฆ integriert. MySQL Werkbank Wandeln Sie Anfragen in Klartext in SELECT-Anweisungen mit ORDER BY um. รœberprรผfen Sie stets die generierte Sortierspalte und -richtung, da eine KI nicht erkennen kann, welche Sortierung Ihr Bericht erfordert.

Teilweise. KI-gestรผtzte Berater analysieren langsame Abfrageprotokolle und schlagen Indizes vor, die Dateisortierungsoperationen reduzieren. Die Vorschlรคge mรผssen jedoch weiterhin von einem Menschen รผberprรผft werden, da jeder zusรคtzliche Index Einfรผge- und Aktualisierungsvorgรคnge in derselben Tabelle verlangsamt.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: