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

Sử dụng IF/WHEN/ELSE/OR với ORDER BY FIELD trong MySQL

Kết hợp WHERE ... OR ... với ORDER BY FIELD(cot, gia_tri_1, gia_tri_2) để ưu tiên thứ tự hiển thị các giá trị cụ thể, giới hạn 1 hàng đầu tiên.

Ví dụ minh họa

Tạo bảng điểm:

mysql> CREATE TABLE DemoTable1884 (Marks INT);
mysql> INSERT INTO DemoTable1884 VALUES(55),(97),(79),(87);

Tìm điểm 98 hoặc 87, ưu tiên 98 trước, lấy 1 hàng:

mysql> SELECT * FROM DemoTable1884
    WHERE Marks = 98 OR Marks = 87
    ORDER BY FIELD(Marks, 98, 87) LIMIT 1;

Kết quả (không có 98, nên trả 87):

+-------+
| Marks |
+-------+
|    87 |
+-------+

Ứng dụng: Sắp xếp tùy chỉnh trạng thái (Pending, Processing, Done), ưu tiên tìm kiếm, v.v. FIELD() trả về 0 nếu không khớp, nên giá trị không liệt kê sẽ排最后.