最初の方法(単語の開始、単語の途中、単語の終了)を行うには、次のようにします。
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
2番目の方法(一致した文字列の位置)を行うには、 LOCATE 機能
:
SELECT word
FROM words
WHERE word LIKE '%searchstring%'
ORDER BY LOCATE('searchstring', word)
たとえば、複数の単語がhabで始まる場合に備えて、タイブレーカーが必要になる場合もあります。 。そのためには、次のことをお勧めします:
SELECT word
FROM words
WHERE word LIKE '%searchstring%'
ORDER BY <whatever>, word
habで始まる複数の単語の場合 、habで始まる単語 グループ化され、アルファベット順に並べ替えられます。