Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Sắp xếp số 0 về cuối nhưng giữ thứ tự tăng dần cho các số khác trong MySQL

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 = 0 trả 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 Number tăng dần

Mở rộng: Để đặt NULL cuối: ORDER BY (col IS NULL), col.