SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 09.01.2008 13:50:55

result=mysql_query
Участник
Зарегистрирован: 09.01.2008
Сообщений: 2

Сортировка по числу совпадений слова.

Здравствуйте. Кто сможет подсказать, как выпонить сортировку данных по числу вхождений слова? То есть чтобы выше выдавались строки, в которых было наибольшое число совпадений поисковой фразы. Пример:

Таблица `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    кофе         хорошее кофе                      кофе и молоко

Помогите плиз. Спасибо заранее всем откликнувшимся.

Неактивен

 

#2 09.01.2008 14:25:35

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: Сортировка по числу совпадений слова.

С этим замечательно справляется Fulltext Index smile
http://dev.mysql.com/doc/refman/5.0/en/ … guage.html

При обычных выборках Вы сразу получаете правильно отсортированный результат.

Неактивен

 

#3 09.01.2008 14:45:34

result=mysql_query
Участник
Зарегистрирован: 09.01.2008
Сообщений: 2

Re: Сортировка по числу совпадений слова.

народ, вроде нашел такой мануальчик http://mysql.directnet.ru/doc/userguide … text.html. Но вроде могут возникнуть проблемы с русскими буквами и с тем, что нельзя менее трех символов вводить.

Неактивен

 

#4 09.01.2008 15:47:56

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: Сортировка по числу совпадений слова.

С русскими буквами - да, лучше используйте однобайтовые кодировки.
За количество символов отвечает переменная ft_min_word_len.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson