Einige weniger bekannte Sortiermethoden in MySQL

Einige weniger bekannte Sortiermethoden in MySQL

Vorwort

ORDER BY 字段名升序/降序. Ich glaube, jeder hier kennt diese Sortieranweisung, aber bei speziellen Sortierungen kann die Verwendung des Feldnamens allein nicht den Anforderungen genügen. Hier sind einige Sortiermethoden, die ich kennengelernt habe:

1. Vorbereitung

Zur besseren Demonstration und zum besseren Verständnis bereiten wir zunächst eine Schülertabelle vor, fügen drei Felder hinzu: Nummer, Name und Klasse und fügen mehrere Daten ein, wie in der Abbildung gezeigt:

2. Bedingte Sortierung

Anforderung 1: Sortieren Sie die Punktzahlen von hoch nach niedrig

Sogar die Tanten, die auf der Straße Gemüse verkaufen, können anklopfen, und Sie können es ganz einfach erledigen, indem Sie ORDER BY examScore DESC verwenden (wie im linken Bild unten gezeigt).

Anforderung 2: Sortiere die Punktzahlen von hoch nach niedrig, und diejenigen ohne Punktzahl stehen vorne

Das Kundenerlebnis ist das Wichtigste. Es ist normal, eine solche Anfrage zu stellen, um die zweite Eingabe der Bewertungen zu erleichtern. Um diese Sortierung zu erreichen, kann die obige Anweisung nicht implementiert werden, daher ist eine bedingte Sortierung erforderlich. Bestimmen Sie zunächst, ob die Punktzahl leer ist, weisen Sie einen Maximalwert zu und sortieren Sie dann. Beispielsweise kann ORDER BY IF(examScore IS NULL,101,examScore) DESC auch problemlos implementiert werden (wie in der rechten Abbildung unten gezeigt).

brauchen Anforderung 1 Anforderung 2
Stellungnahmen ORDER BY Prüfungsergebnis DESC ORDER BY IF(Prüfungsergebnis IST NULL,101,Prüfungsergebnis) DESC
Wirkung Bildbeschreibung hier einfügenBildbeschreibung hier einfügen

3. Benutzerdefinierte Sortierung

Kunden sind wie Götter und es ist nicht ungewöhnlich, ausgefallene Forderungen zu stellen. Beispielsweise verlangen sie, dass Zhang San und Li Si ganz vorne stehen und andere Schüler entsprechend ihrer Noten von hoch nach niedrig eingestuft werden. In diesem Fall müssen Sie eine benutzerdefinierte Sortierung verwenden. Die in MySQL integrierte FIELD-Funktion (gibt den Index der entsprechenden Zeichenfolge zurück) kann Ihnen dabei helfen.

Aussage 1:
ORDER BY FIELD(Studentenname, „Studentenname“, „Studentenname“) ASC, Prüfungsergebnis DESC;

Das Ergebnis der Ausführung der obigen Anweisung setzt Zhang San und Li Si ans Ende (wie im linken Bild unten gezeigt). Natürlich sollten wir Zhang San und Li Si an den Anfang setzen und sie in absteigender Reihenfolge sortieren.

Aussage 2:
ORDER BY FIELD(Studentenname, „Student“, „Studentenname“) DESC, Prüfungsergebnis DESC;

Das Ergebnis war genau das, was er wollte (siehe rechtes Bild unten).

Stellungnahmen Satz 1 Aussage 2
Wirkung Bildbeschreibung hier einfügenBildbeschreibung hier einfügen

Später stellte ich fest, dass dies auch mit der Funktion FIND_IN_SET erreicht werden kann. Nach Tests mit 1 Million Datensätzen zeigte FIND_IN_SET eine bessere Leistung.

ORDER BY FIND_IN_SET(studentName,'Studentenname,Studentenname') DESC, Prüfungsergebnis DESC;

4. Sortieren chinesischer Schriftzeichen nach ihren Anfangsbuchstaben

Einige Freunde fragen sich vielleicht, warum es so wenig bekannt ist, da chinesische Schriftzeichen problemlos mit dem allgemeinen ORDER BY 字段ASC sortiert werden können.
Wenn Benutzer Tabellenfelder mit dem GBK-Zeichensatz erstellen, kann das Problem tatsächlich gelöst werden, indem sie direkt ORDER BY 字段ASC verwenden. Einige Benutzer verwenden den utf8-Zeichensatz, um verstümmelte Zeichen zu vermeiden, und einfache Sortieranweisungen sind machtlos (wie im linken Bild unten gezeigt). Daher ist es in Ordnung, die Felder beim Sortieren in GBK zu konvertieren (wie im rechten Bild unten gezeigt).

Stellungnahmen ORDER BY Studentenname ASC ORDER BY CONVERT(Studentenname unter Verwendung von GBK) ASC
Wirkung Bildbeschreibung hier einfügenBildbeschreibung hier einfügen

Zusammenfassen

Damit ist dieser Artikel über einige weniger bekannte Sortiermethoden in MySQL abgeschlossen. Weitere Informationen zu MySQL-Sortiermethoden finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Beispiel für utf8mb4-Sortierung in MySQL
  • Sortieren von MySQL-Aggregatfunktionen
  • MySQL-Sortierung mittels Index-Scan
  • Beschreibung der chinesischen Sortierregeln für MySQL
  • Fallstricke basierend auf MySQL-Standardsortierregeln
  • MySQL-Sortierprinzipien und Fallanalyse
  • Sortierung und Paginierung von MySQL-Abfragen
  • So verwenden Sie Indizes zur Optimierung von MySQL ORDER BY-Anweisungen
  • Mysql-Sortierung und Paginierung (Order by & Limit) und vorhandene Fallstricke
  • Details zur MySQL-Sortierfunktion

<<:  URL-Darstellung in HTML-Webseiten

>>:  Docker-Container greift auf MySQL-Operationen des Hosts zu

Artikel empfehlen

Eine kurze Einführung in Linux-Leistungsüberwachungsbefehle kostenlos

Wie können wir den Fehler lokalisieren, wenn im S...

Einige Referenzen zu Farben in HTML

In HTML werden Farben auf zwei Arten dargestellt. ...

So installieren Sie Git unter Linux

1. Einleitung Git ist ein kostenloses, verteiltes...

Datenabfragevorgang im MySQL-JSON-Format

Der Standardtabellenname ist „base_data“ und der ...

Zusammenfassung der Methoden zur Änderung von MySQL-Passwörtern

Methoden zum Ändern von Passwörtern vor MySQL 5.7...

CSS-Rand halb oder teilweise sichtbarer Implementierungscode

1. Verwenden Sie Pseudoklassen, um die Hälfte des...

Eine Sammlung möglicher Probleme bei der Migration von SQLite3 nach MySQL

Kurzbeschreibung Passend für Leser: Mobile Entwic...

Allgemeine Verwendung von regulären Ausdrücken in MySQL

Allgemeine Verwendung von Regexp in Mysql Fuzzy-M...

Eine benutzerfreundliche Alternative in Linux (Befehl fd)

Der Befehl fd bietet eine einfache und unkomplizi...

Zwei Implementierungen des Front-End-Routings von Vue-Router

Inhaltsverzeichnis Modusparameter HashHistorie Ha...