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

Sắp xếp theo độ liên quan (RELEVANCE) trong MySQL

Dùng CASE WHEN ... THEN ... trong ORDER BY để ưu tiên kết quả khớp đầu, giữa, cuối.

Tạo bảng UserName, chèn 5 tên có từ 'Carol'.

Truy vấn:

mysql> select max(UserId)as Id,UserName from OrderByRelevance
-> where UserName like '%Carol%' group by UserName
-> order by case when UserName like 'Carol%' THEN 0
-> WHEN UserName like '% %Carol% %' THEN 1
-> WHEN UserName like '%Carol' THEN 2
-> else 3 end, UserName;

Kết quả thứ tự: Carol Adams, Carol Smith, Carolnathan Todd, Sam Carol Bond.