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