最初の方法(単語の開始、単語の途中、単語の終了)を行うには、次のようにします。
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
で始まる単語 グループ化され、アルファベット順に並べ替えられます。