Die Leute wenden dazu verschiedene Tricks an. Ich habe gegoogelt und herausgefunden, dass einige Ergebnisse jeweils unterschiedlichen Tricks folgen. Schauen Sie sie sich an:
- Alphanumerische Sortierung in MySQL
- Natürliche Sortierung in MySQL
- Sortierung von numerischen Werten Werte gemischt mit alphanumerischen Werten
- natürliche Sortierung von mySQL
- Natürliche Sortierung in MySQL
Bearbeiten:
Ich habe nur den Code jedes Links für zukünftige Besucher hinzugefügt.
Alphanumerische Sortierung in MySQL
Eingaben gegeben
1A 1a 10A 9B 21C 1C 1D
Erwartete Ausgabe
1A 1C 1D 1a 9B 10A 21C
Abfrage
Bin Way
===================================
SELECT
tbl_column,
BIN(tbl_column) AS binray_not_needed_column
FROM db_table
ORDER BY binray_not_needed_column ASC , tbl_column ASC
-----------------------
Cast Way
===================================
SELECT
tbl_column,
CAST(tbl_column as SIGNED) AS casted_column
FROM db_table
ORDER BY casted_column ASC , tbl_column ASC
Natürliche Sortierung in MySQL
Eingaben gegeben
Table: sorting_test -------------------------- ------------- | alphanumeric VARCHAR(75) | integer INT | -------------------------- ------------- | test1 | 1 | | test12 | 2 | | test13 | 3 | | test2 | 4 | | test3 | 5 | -------------------------- -------------
Erwartete Ausgabe
-------------------------- -------------
| alphanumeric VARCHAR(75) | integer INT |
-------------------------- -------------
| test1 | 1 |
| test2 | 4 |
| test3 | 5 |
| test12 | 2 |
| test13 | 3 |
-------------------------- -------------
Abfrage
SELECT alphanumeric, integer
FROM sorting_test
ORDER BY LENGTH(alphanumeric), alphanumeric
Sortierung von numerischen Werten gemischt mit alphanumerische Werte
Eingaben gegeben
2a, 12, 5b, 5a, 10, 11, 1, 4b
Erwartete Ausgabe
1, 2a, 4b, 5a, 5b, 10, 11, 12
Abfrage
SELECT version
FROM version_sorting
ORDER BY CAST(version AS UNSIGNED), version;
Hoffe das hilft