У меня есть таблица, содержащая слова и поле ввода для поиска в этой таблице с помощью прямого поиска. В настоящее время я использую следующий запрос для поиска в таблице:
SELECT word FROM words WHERE word LIKE '%searchstring%' ORDER BY word ASC
Есть ли способ упорядочить результаты так, чтобы те, где строка находилась в начале слова, были первыми, а те, где строка появляется позже в слове, приходят последним?
Пример: поиск ' hab' возвращает
- a lphabet
- h abit
- r ehab
но мне бы хотелось:
- hab (сначала потому, что "hab" - это начало)
- alp hab et (второй, потому что "hab" находится посреди слова)
- re hab (последний, потому что "hab" находится в конце слова)
или по крайней мере таким образом:
- hab (сначала потому, что "hab" - это начало)
- re hab (второй, потому что "hab" начинается с третьей буквы)
- alp hab et (последний, потому что "hab" начинается последним, на четвертой букве)
Было бы здорово, если бы кто-нибудь мог мне помочь!