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

Sắp xếp danh sách MySQL và cố định một giá trị ở cuối cột

Để sắp xếp danh sách bình thường nhưng ép một giá trị cụ thể luôn xuất hiện ở cuối, bạn dùng biểu thức logic trong ORDER BY: ORDER BY column = 'fixed_value', column.

Ví dụ minh họa

Tạo bảng:

mysql> create table DemoTable( 
    FirstName varchar(100) 
);

Chèn dữ liệu:

mysql> insert into DemoTable values('Chris');
mysql> insert into DemoTable values('Adam');
mysql> insert into DemoTable values('John');
mysql> insert into DemoTable values('Sam');
mysql> insert into DemoTable values('Mike');
mysql> insert into DemoTable values('David');

Hiển thị dữ liệu gốc:

mysql> select * from DemoTable;

Kết quả:

+-----------+
| FirstName |
+-----------+
| Chris     |
| Adam      |
| John      |
| Sam       |
| Mike      |
| David     |
+-----------+

Truy vấn sắp xếp A-Z nhưng ép "Mike" về cuối

mysql> select * from DemoTable order by FirstName='Mike', FirstName;

Kết quả:

+-----------+
| FirstName |
+-----------+
| Adam      |
| Chris     |
| David     |
| John      |
| Sam       |
| Mike      |
+-----------+

Giải thích:

  • FirstName = 'Mike': Biểu thức logic, TRUE = 1, FALSE = 0
  • Sắp xếp theo cột ảo này trước: FALSE (0) trước, TRUE (1) sau → các tên khác 'Mike' lên trước
  • Trong cùng nhóm FALSE, sắp xếp tiếp theo FirstName (A-Z)
  • 'Mike' (TRUE=1) bị đẩy xuống cuối

Mở rộng: Để ép nhiều giá trị về cuối theo thứ tự: ORDER BY FIELD(FirstName, 'Mike', 'John'), FirstName hoặc ORDER BY CASE WHEN FirstName IN ('Mike','John') THEN 1 ELSE 0 END, FirstName.