Dùng ORDER BY với một số trường hợp (CASE). Tạo bảng:
mysql> CREATE TABLE demo18 ( value TEXT ); Query OK, 0 rows affected (1.18 sec)
Chèn bản ghi:
mysql> INSERT INTO demo18 VALUES('John Smith'); Query OK, 1 row affected (0.06 sec) mysql> INSERT INTO demo18 VALUES('2J John has 58'); Query OK, 1 row affected (0.17 sec) mysql> INSERT INTO demo18 VALUES('2J John has 9'); Query OK, 1 row affected (0.09 sec)
Hiển thị:
mysql> SELECT * FROM demo18;
Kết quả:
+----------------+ | value | +----------------+ | John Smith | | 2J John has 58 | | 2J John has 9 | +----------------+ 3 rows in set (0.00 sec)
Truy vấn sắp xếp:
mysql> SELECT * FROM demo18 ORDER BY REGEXP_REPLACE(value, '[0-9]*$', ''), LENGTH(value), value;
Kết quả:
+----------------+ | value | +----------------+ | 2J John has 9 | | 2J John has 58 | | John Smith | +----------------+ 3 rows in set (0.14 sec)