ใช้ LPAD(LOWER(column_name)) เพื่อเรียง VARCHAR ให้เป็นตัวเลขใน MySQL
สร้างตารางและเพิ่มข้อมูล
mysql> CREATE TABLE SortingvarcharDemo (List VARCHAR(10));
mysql> INSERT INTO SortingvarcharDemo VALUES ('99'), ('9'), ('199'), ('1'), ('999'), ('78');
ข้อมูลดิบ (ไม่เรียง):
+------+
| List |
+------+
| 99 |
| 9 |
| 199 |
| 1 |
| 999 |
| 78 |
+------+
Syntax การเรียงตัวเลข
SELECT * FROM yourTableName ORDER BY LPAD(LOWER(column_name), length, pad_string) ASC;
Query จริง
mysql> SELECT * FROM SortingvarcharDemo ORDER BY LPAD(LOWER(List), 6, '0') ASC;
ผลลัพธ์เรียงจากน้อยไปมาก (Ascending)
+------+
| List |
+------+
| 1 |
| 9 |
| 78 |
| 99 |
| 199 |
| 999 |
+------+