Sử dụng biểu thức boolean Number = 0 trong ORDER BY. Kết quả boolean: FALSE (0) < TRUE (1), nên các hàng không phải 0 (FALSE) sẽ xếp trước, hàng bằng 0 (TRUE) xếp sau. Phụ sort theo Number để các số khác tăng dần.
Tạo bảng và dữ liệu
mysql> CREATE TABLE DemoTable (Number INT); Query OK, 0 rows affected (0.58 sec)
mysql> INSERT INTO DemoTable VALUES(9), (4), (0), (7), (11); Query OK, 5 rows affected (0.13 sec)
Truy vấn ORDER BY đặt 0 cuối
mysql> SELECT * FROM DemoTable ORDER BY Number = 0, Number;
Kết quả:
+--------+ | Number | +--------+ | 4 | | 7 | | 9 | | 11 | | 0 | +--------+ 5 rows in set (0.00 sec)
Cơ chế:
Number = 0trả về 0 (false) cho 4,7,9,11 → xếp trước- Trả về 1 (true) cho 0 → xếp sau
- Trong mỗi nhóm, sắp xếp theo
Numbertăng dần
Mở rộng: Để đặt NULL cuối: ORDER BY (col IS NULL), col.