MySQL поиск и сортировка результатов по релевантности
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
SELECT name FROM table_test WHERE name LIKE '%строка_поиска%' ORDER BY CASE WHEN name LIKE 'строка_поиска' THEN 0 WHEN name LIKE 'строка_поиска %' THEN 1 WHEN name LIKE 'строка_поиска%' THEN 2 WHEN name LIKE '% строка_поиска%' THEN 3 ELSE 4 END |
Таким образом, результаты поиска будут отсортированы по релевантности:
1 2 3 4 5 6 7 8 9 |
строка_поиска строка_поиска и затем какой-то текст строка_поиска_как_часть_слова какой-то текст строка_поиска_как_часть_слова прочие результаты, содержащие в_конце_слова_строка_поиска или в_середине_строка_поиска_как_часть_слова |
Свежие комментарии