Heim > Datenbank > MySQL-Tutorial > Wie kann ich alphanumerische Daten in MySQL mit ORDER BY richtig sortieren?

Wie kann ich alphanumerische Daten in MySQL mit ORDER BY richtig sortieren?

Susan Sarandon
Freigeben: 2024-12-12 14:25:12
Original
525 Leute haben es durchsucht

How Can I Correctly Sort Alphanumeric Data in MySQL Using ORDER BY?

MySQL „Order By“ – Alphanumerische Daten richtig sortieren

Problem:

Bei der Verwendung In der „ORDER BY“-Klausel mit alphanumerischen Daten in MySQL priorisiert die Sortierung häufig die erste Ziffer, was zu einer falschen Reihenfolge führt. Zum Beispiel die folgenden Daten:

1
2
3
4
5
6
7
8
9
10
11
12
Nach dem Login kopieren

Würden sortiert werden als:

1
10
11
12
2
3
4
5
6
7
8
9
Nach dem Login kopieren

Lösung:

Es gibt verschiedene Ansätze zum Sortieren alphanumerische Daten korrekt, einschließlich:

1. Alphanumerische Sortierung

Diese Methode verwendet die Funktion BIN(), um die alphanumerischen Daten in eine binäre Darstellung umzuwandeln, die dann zum Sortieren verwendet wird.

SELECT *
FROM table
ORDER BY BIN(name) ASC, name ASC;
Nach dem Login kopieren

2 . Natürliche Sortierung

Bei der natürlichen Sortierung werden die Werte Zeichen für Zeichen verglichen, wobei sowohl Zahlen als auch Buchstaben berücksichtigt werden. Dies kann mithilfe einer benutzerdefinierten Vergleichsfunktion oder durch den Rückgriff auf eine externe Bibliothek erreicht werden, die diese Funktionalität bereitstellt.

SELECT *
FROM table
ORDER BY name DESC; -- Using a customized comparison function
Nach dem Login kopieren

3. Numerische Werte gemischt mit alphanumerischen Werten sortieren

Beim Umgang mit einer Mischung aus numerischen und alphanumerischen Werten kann die CAST()-Funktion verwendet werden, um die numerischen Werte in eine vorzeichenlose Ganzzahl umzuwandeln, die dann für verwendet wird Sortieren.

SELECT *
FROM table
ORDER BY CAST(name AS UNSIGNED), name;
Nach dem Login kopieren

4. Längenbasierte Sortierung

Diese Methode sortiert die Daten basierend auf der Länge jedes Werts, wobei kürzere Werte zuerst angezeigt werden.

SELECT *
FROM table
ORDER BY LENGTH(name), name;
Nach dem Login kopieren

Hinweis: Die Der spezifische Verwendungsansatz kann je nach den spezifischen Anforderungen und den verfügbaren Ressourcen in der MySQL-Umgebung variieren.

Das obige ist der detaillierte Inhalt vonWie kann ich alphanumerische Daten in MySQL mit ORDER BY richtig sortieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage