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

Sắp xếp nâng cao MySQL: Đẩy chuỗi bắt đầu bằng J về cuối sau ORDER BY

Để sắp xếp alphabet thông thường nhưng ép các chuỗi bắt đầu bằng chữ 'J' (hoặc chứa 'J') xuống cuối danh sách, dùng biểu thức LIKE trong ORDER BY.

Ví dụ minh họa

Tạo bảng:

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

Chèn dữ liệu:

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

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

mysql> select * from DemoTable;

Kết quả:

+-------+
| Name  |
+-------+
| John  |
| Adam  |
| Chris |
| Jace  |
| David |
| Sam   |
+-------+

Truy vấn ORDER BY LIKE '%J%' để đẩy tên có J về cuối

mysql> select * from DemoTable order by Name like '%J%', Name;

Kết quả:

+-------+
| Name  |
+-------+
| Adam  |
| Chris |
| David |
| Sam   |
| Jace  |
| John  |
+-------+

Giải thích:

  • Name LIKE '%J%': Trả về 1 (TRUE) nếu tên chứa 'J' ở bất kỳ vị trí, 0 (FALSE) nếu không
  • ORDER BY ... LIKE ..., Name: Sắp xếp trước theo kết quả LIKE (0 trước, 1 sau), sau đó theo Name A-Z
  • Nhóm không có J: Adam, Chris, David, Sam → sắp A-Z
  • Nhóm có J: Jace, John → sắp A-Z → Jace trước John

Lưu ý: Mẫu '%J%' khớp 'J' ở **bất kỳ vị trí** (đầu, giữa, cuối). Nếu chỉ muốn bắt đầu bằng J: Name LIKE 'J%'.