Để 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ôngORDER 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%'.