Zamówienie MySQL według „najlepszego dopasowania”

Mam tabelę zawierającą słowa i pole wejściowe do wyszukiwania w tabeli przy użyciu wyszukiwania na żywo. Obecnie używam następującej kwerendy do przeszukiwania tabeli:

SELECT word FROM words WHERE word LIKE '%searchstring%' ORDER BY word ASC

Czy istnieje sposób na uporządkowanie wyników, tak aby te, w których łańcuch znajduje się na początku słowa, były pierwsze, a te, w których ciąg pojawia się później w słowie, są ostatnie?

Przykład: wyszukiwanie ”hab'obecnie wraca

a lphabeth trochęr ehab

ale chciałbym to w ten sposób:

hab to (po pierwsze, ponieważ „hab” to początek)turniahab et (drugi, ponieważ „hab” jest w środku słowa)rehab (ostatnie, ponieważ „hab” jest na końcu słowa)

lub przynajmniej w ten sposób:

hab to (po pierwsze, ponieważ „hab” to początek)rehab (drugi, ponieważ „hab” zaczyna się od trzeciej litery)turniahab et (ostatnie, ponieważ „hab” zaczyna się najpóźniej, w czwartej liście)

Byłoby wspaniale, gdyby ktoś mógł mi w tym pomóc!

questionAnswers(3)

yourAnswerToTheQuestion