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

Sắp xếp và lọc truy vấn MySQL với điều kiện (đẩy 0 xuống cuối)

Kỹ thuật: ORDER BY cot = 0, cot - biểu thức logic cot = 0 trả về 1 (true) hoặc 0 (false), sắp xếp false (0) trước, true (1) sau → giá trị 0 xuống cuối.

Ví dụ minh họa

Tạo bảng:

mysql> CREATE TABLE DemoTable1348 (Amount INT);

Chèn dữ liệu (có 0):

mysql> INSERT INTO DemoTable1348 VALUES(100), (0), (90), (45), (0), (89);

Xem dữ liệu gốc:

mysql> SELECT * FROM DemoTable1348;
+--------+
| Amount |
+--------+
| 100    |
| 0      |
| 90     |
| 45     |
| 0      |
| 89     |
+--------+

Sắp xếp: giá trị ≠ 0 tăng dần trước, 0 sau cùng:

mysql> SELECT * FROM DemoTable1348 ORDER BY Amount = 0, Amount;

Kết quả:

+--------+
| Amount |
+--------+
| 45     |
| 89     |
| 90     |
| 100    |
| 0      |
| 0      |
+--------+

Giải thích:

  • Amount = 0 trả về 0 cho hàng không phải 0, 1 cho hàng = 0.
  • ORDER BY 0, Amount → nhóm 0 (không phải 0) sắp theo Amount, rồi nhóm 1 (là 0).

Mở rộng: Đẩy NULL xuống cuối: ORDER BY cot IS NULL, cot. Đẩy giá trị cụ thể lên đầu: ORDER BY cot = 'priority' DESC, cot.