Chcete-li to udělat prvním způsobem (začíná slovo, uprostřed slova, končí slovo), zkuste něco takového:
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
Chcete-li to provést druhým způsobem (pozice shodného řetězce), použijte LOCATE
funkce
:
SELECT word
FROM words
WHERE word LIKE '%searchstring%'
ORDER BY LOCATE('searchstring', word)
Můžete také chtít nerozhodný výsledek v případě, že například více než jedno slovo začíná hab
. Chcete-li to provést, navrhuji:
SELECT word
FROM words
WHERE word LIKE '%searchstring%'
ORDER BY <whatever>, word
V případě více slov začínajících hab
, slova začínající hab
budou seskupeny a seřazeny podle abecedy.