Folk bruger forskellige tricks til at gøre dette. Jeg Googlede og finder ud af, at nogle resultater følger forskellige tricks. Tag et kig på dem:
- Alfa-numerisk sortering i MySQL
- Naturlig sortering i MySQL
- Sortering af numerisk værdier blandet med alfanumeriske værdier
- mySQL naturlig sortering
- Naturlig sortering i MySQL
Rediger:
Jeg har lige tilføjet koden for hvert link til fremtidige besøgende.
Alfa-numerisk sortering i MySQL
Givet input
1A 1a 10A 9B 21C 1C 1D
Forventet output
1A 1C 1D 1a 9B 10A 21C
Forespørgsel
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
Givet input
Tabel:sorting_test -------------------------- --------------| alfanumerisk VARCHAR(75) | heltal INT | -------------------------- --------------------| test1 | 1 || test12 | 2 || test13 | 3 || test2 | 4 || test3 | 5 | -------------------------- --------------------
Forventet output
-------------------------- -------------
| alphanumeric VARCHAR(75) | integer INT |
-------------------------- -------------
| test1 | 1 |
| test2 | 4 |
| test3 | 5 |
| test12 | 2 |
| test13 | 3 |
-------------------------- -------------
Forespørgsel
SELECT alphanumeric, integer
FROM sorting_test
ORDER BY LENGTH(alphanumeric), alphanumeric
Sortering af numeriske værdier blandet med alfanumeriske værdier
Givet input
2a, 12, 5b, 5a, 10, 11, 1, 4b
Forventet output
1, 2a, 4b, 5a, 5b, 10, 11, 12
Forespørgsel
SELECT version
FROM version_sorting
ORDER BY CAST(version AS UNSIGNED), version;
Håber dette hjælper