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 ehabale 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!