Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте. Кто сможет подсказать, как выпонить сортировку данных по числу вхождений слова? То есть чтобы выше выдавались строки, в которых было наибольшое число совпадений поисковой фразы. Пример:
Таблица `arts`:
`id` `title` `descr` `full_descr`
1 булочка булочка и молоко молоко и вкусная булочка - хороший завтрак
2 кофе хорошее кофе кофе и молоко
3 молоко вкусное молоко самое вкусное молоко
4 чай хороший чай офигенный чай
Запрос:
SELECT
`title`, `descr`, `full_descr`
FROM
`arts`
WHERE
`title` LIKE '%молоко%' OR
`descr` LIKE '%молоко%' OR
`full_descr` LIKE '%молоко%'
который выдаст:
булочка булочка и молоко молоко и вкусная булочка - хороший завтрак
кофе хорошее кофе кофе и молоко
молоко вкусное молоко самое вкусное молоко
Мне нужно отсортировать по числу совпадений слова молоко, то есть результат должен быть типа такого:
3 молоко вкусное молоко самое вкусное молоко
1 булочка булочка и молоко молоко и вкусная булочка - хороший завтрак
2 кофе хорошее кофе кофе и молоко
Помогите плиз. Спасибо заранее всем откликнувшимся.
Неактивен
С этим замечательно справляется Fulltext Index
http://dev.mysql.com/doc/refman/5.0/en/ … guage.html
При обычных выборках Вы сразу получаете правильно отсортированный результат.
Неактивен
народ, вроде нашел такой мануальчик http://mysql.directnet.ru/doc/userguide … text.html. Но вроде могут возникнуть проблемы с русскими буквами и с тем, что нельзя менее трех символов вводить.
Неактивен
С русскими буквами - да, лучше используйте однобайтовые кодировки.
За количество символов отвечает переменная ft_min_word_len.
Неактивен