Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Thứ tự MySQL theo kết quả phù hợp nhất

Để làm điều đó theo cách đầu tiên (bắt đầu từ, ở giữa từ, kết thúc từ), hãy thử một cái gì đó như sau:

SELECT word
FROM words
WHERE word LIKE '%searchstring%'
ORDER BY
  CASE
    WHEN word LIKE 'searchstring%' THEN 1
    WHEN word LIKE '%searchstring' THEN 3
    ELSE 2
  END

Để thực hiện theo cách thứ hai (vị trí của chuỗi đã so khớp), hãy sử dụng LOCATE chức năng :

SELECT word
FROM words
WHERE word LIKE '%searchstring%'
ORDER BY LOCATE('searchstring', word)

Bạn cũng có thể muốn có dấu ngắt trong trường hợp, chẳng hạn như nhiều từ bắt đầu bằng hab . Để làm điều đó, tôi đề nghị:

SELECT word
FROM words
WHERE word LIKE '%searchstring%'
ORDER BY <whatever>, word

Trong trường hợp có nhiều từ bắt đầu bằng hab , các từ bắt đầu bằng hab sẽ được nhóm lại với nhau và sắp xếp theo thứ tự bảng chữ cái.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL AUTO_INCREMENT không ROLLBACK

  2. Xác định tệp cấu hình MySQL nào đang được sử dụng

  3. Làm cách nào để MySQL sử dụng INDEX cho truy vấn chế độ xem?

  4. Làm cách nào để tắt bộ nhớ đệm SQLAlchemy?

  5. Trong MySQL, tôi có thể trì hoãn kiểm tra tính toàn vẹn tham chiếu cho đến khi cam kết không