Dùng LPAD(LOWER(column_name)) để sắp xếp cột VARCHAR theo thứ tự số.
Tạo bảng
mysql> CREATE TABLE SortingvarcharDemo (
-> List VARCHAR(10)
-> );
Query OK, 0 rows affected (0.82 sec)
Chèn dữ liệu
mysql> INSERT INTO SortingvarcharDemo VALUES("99"),("9"),("199"),("1"),("999"),("78");
Dữ liệu gốc (không sắp xếp)
+------+
| List |
+------+
| 99 |
| 9 |
| 199 |
| 1 |
| 999 |
| 78 |
+------+
Sắp xếp số tăng dần
mysql> SELECT * FROM SortingvarcharDemo ORDER BY LPAD(LOWER(List), 6, '0') ASC;
Kết quả:
+------+
| List |
+------+
| 1 |
| 9 |
| 78 |
| 99 |
| 199 |
| 999 |
+------+