Để 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.