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 = 0trả 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.