За да го направите по първия начин (започва дума, в средата на думата, завършва дума), опитайте нещо подобно:
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
За да го направите по втория начин (позиция на съответстващия низ), използвайте 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 ще бъдат групирани и сортирани по азбучен ред.