Вывод результатов поиска по количеству совпадений

funkster

Новичок
Вывод результатов поиска по количеству совпадений

Здравствуйте,
есть система поиска типа select from table where name LIKE str1 or name Like str2.
Где str - отдельное слово в строке поиска. Как можно вывести результаты по убыванию совпадений ?
Так чтобы первыми были строки, где есть 2 слова из двух, дальше шли строки с первым из двух, а потом со вторым из двух.

Возможно ли это ?
 
funkster
Почитай про полнотекстовый (fulltext) поиск в mysql.
 
не подходит ... у меня поиск по части слова.
То есть слово дорога приводится к дорог*.
 
Возможно ли это ?
для Like - нет
принципиально - возможно

ищи на phpInside #7 (Материалы III-Конференции ) Статья Рыбака про контекстный поиск (поиск с морфологией)
ищи Материалы последней Конференции про написание процедур
Процедуры в mySQL: примеры практического применения. (Александр Войцеховский ).
 
"для Like - нет" ... как-то не порадовало =(
Буду искать указанные источники.
 
Здравствуйте,
есть система поиска типа select from table where name LIKE str1 or name Like str2.
Где str - отдельное слово в строке поиска. Как можно вывести результаты по убыванию совпадений ?
Так чтобы первыми были строки, где есть 2 слова из двух, дальше шли строки с первым из двух, а потом со вторым из двух.
Да, это возможно. Например,

[sql]select 2*(name like str1) + (name like str2) as cnt, name from table where name LIKE str1 or name Like str2 order by cnt desc[/sql]
 
А потом постраничный вывод с LIMIT уже грозит проблемками. То есть надо следить откуда выбирать данные.
 
Сверху