[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите переделать запрос
Гость_User
Здравствуйте.

Запрос:

SELECT title, date_format(material_date,'%e.%c.%y') AS date1, 
IF(text like '%word1 word2 word3%', 3*10, 0) + IF(text LIKE '%word1%', 9, 0) + IF(text LIKE '%word2%', 9, 0) + IF(text LIKE '%word3%', 9, 0) AS relevance
FROM table
WHERE
text LIKE '%word1%' OR
text LIKE '%word2%' OR text LIKE '%word3%'
ORDER BY relevance DESC, material_date DESC


Нужно переделать под: выбрать все, поля для поиска совпадения: field1 и field2



Спустя 11 минут, 37 секунд (7.02.2011 - 22:49) inpost написал(а):
Ничего не понятно, вроде как просишь что-то простое, а показываешь какой-то громоздский код =)

Спустя 6 минут, 10 секунд (7.02.2011 - 22:55) Гость_User написал(а):
Запрос для поиска с сортировкой по релевантности без использования match against (ну и FULLTEXT). )

Не могу понять некоторых вещей и ищется сложно.

Спустя 1 минута, 38 секунд (7.02.2011 - 22:57) Гость_User написал(а):
Нужно использовать данный запрос для поиска.
Ищу по полям field1 field2. А из данных, которые соответствуют запросу нужно выбрать все *.

Спустя 8 минут, 50 секунд (7.02.2011 - 23:06) Гость_User написал(а):
Тогда проще:
Как переделать запрос ниже по примеру запроса выше, чтобы данные сортировались по релевантности.

SELECT distinct * FROM table WHERE field1 LIKE '%text%' or field1 LIKE '%text1%' LIMIT 0, 10

Спустя 5 минут, 32 секунды (7.02.2011 - 23:11) Гость_User написал(а):
Переделал сам.
Проверьте.

SELECT *, IF(field1 like '%word1 word2%', 3*10, 0) + IF(field1 LIKE '%word1%', 9, 0) + IF(field1 LIKE '%word2%', 9, 0) AS relevance 
FROM table
WHERE
field1 LIKE '%word1%' OR field1 LIKE '%word2%'
ORDER BY relevance DESC
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.