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

Đưa một giá trị cụ thể lên đầu khi ORDER BY trong MySQL

Dùng biểu thức logic (cot = gia_tri) trong ORDER BY. Biểu thức trả về 1 (true) cho hàng khớp, 0 (false) cho các hàng khác. Sắp xếp DESC để đưa 1 lên đầu.

Ví dụ minh họa

Tạo bảng:

mysql> CREATE TABLE DemoTable (Number INT);

Chèn dữ liệu:

mysql> INSERT INTO DemoTable VALUES(10), (20), (12), (14), (19), (45), (56), (103), (87), (98);

Xem dữ liệu:

mysql> SELECT * FROM DemoTable;

Kết quả

+--------+
| Number |
+--------+
| 10     |
| 20     |
| 12     |
| 14     |
| 19     |
| 45     |
| 56     |
| 103    |
| 87     |
| 98     |
+--------+

Đưa giá trị 45 lên đầu, các giá trị còn lại sắp xếp tăng dần:

mysql> SELECT * FROM DemoTable ORDER BY (Number = 45) DESC, Number;

Kết quả

+--------+
| Number |
+--------+
| 45     |
| 10     |
| 12     |
| 14     |
| 19     |
| 20     |
| 56     |
| 87     |
| 98     |
| 103    |
+--------+

Mở rộng: Đưa nhiều giá trị cụ thể lên đầu theo thứ tự: ORDER BY FIELD(Number, 45, 10, 20), Number.