Orang menggunakan trik yang berbeda untuk melakukan ini. Saya mencari di Google dan menemukan beberapa hasil masing-masing mengikuti trik yang berbeda. Lihat mereka:
- Penyortiran Alfa Numerik di MySQL
- Penyortiran Alami di MySQL
- Penyortiran numerik nilai yang dicampur dengan nilai alfanumerik
- penurutan alami MySQL
- Penyortiran Alami di MySQL
Sunting:
Saya baru saja menambahkan kode setiap tautan untuk pengunjung mendatang.
Penyortiran Alfa Numerik di MySQL
Masukan yang diberikan
1A 1a 10A 9B 21C 1C 1D
Keluaran yang diharapkan
1A 1C 1D 1a 9B 10A 21C
Kueri
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
Masukan yang diberikan
Table: sorting_test -------------------------- ------------- | alphanumeric VARCHAR(75) | integer INT | -------------------------- ------------- | test1 | 1 | | test12 | 2 | | test13 | 3 | | test2 | 4 | | test3 | 5 | -------------------------- -------------
Keluaran yang Diharapkan
-------------------------- -------------
| alphanumeric VARCHAR(75) | integer INT |
-------------------------- -------------
| test1 | 1 |
| test2 | 4 |
| test3 | 5 |
| test12 | 2 |
| test13 | 3 |
-------------------------- -------------
Kueri
SELECT alphanumeric, integer
FROM sorting_test
ORDER BY LENGTH(alphanumeric), alphanumeric
Penyortiran nilai numerik yang dicampur dengan nilai alfanumerik
Masukan yang diberikan
2a, 12, 5b, 5a, 10, 11, 1, 4b
Keluaran yang Diharapkan
1, 2a, 4b, 5a, 5b, 10, 11, 12
Kueri
SELECT version
FROM version_sorting
ORDER BY CAST(version AS UNSIGNED), version;
Semoga membantu