In MySQL sortiert die „Order By“-Klausel Daten basierend auf den Werten einer angegebenen Spalte. Beim Umgang mit alphanumerischen Daten priorisiert die Standardsortiermethode jedoch die erste Ziffer, was zu einer falschen Reihenfolge führt.
Zum Beispiel, wenn wir die folgenden Daten haben:
1 2 3 4 5 6 7 8 9 10 11 12
Und wir führen die Abfrage aus:
select * from table order by xxxxx asc
Das Ergebnis wird sortiert als folgt:
1 10 11 12 2 3 4 5 6 7 8 9
Dies liegt daran, dass die Reihenfolge durch die erste Ziffer bestimmt wird, unabhängig von nachfolgenden Zeichen.
Um alphanumerische Daten richtig zu sortieren, haben wir kann verschiedene Tricks anwenden:
Alphanumerische Sortierung Verwenden der Bin-Methode:
SELECT tbl_column, BIN(tbl_column) AS binray_not_needed_column FROM db_table ORDER BY binray_not_needed_column ASC , tbl_column ASC
Natürliche Sortierung:
SELECT alphanumeric, integer FROM sorting_test ORDER BY LENGTH(alphanumeric), alphanumeric
Sortieren numerischer Werte gemischt mit alphanumerischen Werten:
SELECT version FROM version_sorting ORDER BY CAST(version AS UNSIGNED), version;
Mit diesen Tricks können wir sicherstellen, dass alphanumerische Daten sortiert werden korrekt, wobei die gewünschte Reihenfolge der Elemente beibehalten wird.
Das obige ist der detaillierte Inhalt vonWie sortiere ich alphanumerische Daten in der „ORDER BY'-Klausel von MySQL richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!