Để đưa một giá trị cụ thể lên đầu (hoặc cuối) danh sách sắp xếp, bạn có thể dùng biểu thức logic trong mệnh đề ORDER BY. Biểu thức logic trả về 1 (true) hoặc 0 (false), và MySQL sắp xếp false (0) trước true (1) theo thứ tự mặc định.
Ví dụ minh họa
Tạo bảng:
mysql> CREATE TABLE DemoTable (
Status INT
);
Chèn dữ liệu:
mysql> INSERT INTO DemoTable VALUES(30); mysql> INSERT INTO DemoTable VALUES(20); mysql> INSERT INTO DemoTable VALUES(20); mysql> INSERT INTO DemoTable VALUES(30); mysql> INSERT INTO DemoTable VALUES(10); mysql> INSERT INTO DemoTable VALUES(40);
Xem dữ liệu:
mysql> SELECT * FROM DemoTable;
Kết quả
+--------+ | Status | +--------+ | 30 | | 20 | | 20 | | 30 | | 10 | | 40 | +--------+
Yêu cầu: Sắp xếp tăng dần nhưng đưa giá trị 10 xuống cuối.
mysql> SELECT * FROM DemoTable ORDER BY Status=10, Status;
Kết quả
+--------+ | Status | +--------+ | 20 | | 20 | | 30 | | 30 | | 40 | | 10 | +--------+
Giải thích: Status=10 trả về 1 cho hàng có giá trị 10, 0 cho các hàng khác. MySQL sắp xếp 0 trước 1, nên các giá trị khác 10 lên đầu, sau đó sắp xếp tăng dần theo Status.