Untuk melakukannya dengan cara pertama (mulai kata, di tengah kata, akhiri kata), coba seperti ini:
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
Untuk melakukannya dengan cara kedua (posisi string yang cocok), gunakan LOCATE
fungsi
:
SELECT word
FROM words
WHERE word LIKE '%searchstring%'
ORDER BY LOCATE('searchstring', word)
Anda mungkin juga menginginkan tie-breaker jika, misalnya, lebih dari satu kata dimulai dengan hab
. Untuk melakukannya, saya sarankan:
SELECT word
FROM words
WHERE word LIKE '%searchstring%'
ORDER BY <whatever>, word
Untuk beberapa kata yang dimulai dengan hab
, kata-kata yang dimulai dengan hab
akan dikelompokkan bersama dan diurutkan berdasarkan abjad.