[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: поиск по нескольким полям
Kusss
Есть запрос на поиск
SELECT 
id, `name`, `text`
FROM
`table`
WHERE
`name` LIKE '%совет%' OR
`text` LIKE '%совет%'

данные в таблице:
1	'Российский спорт'			'не как советский'
2 'Советский спорт' 'был велик'
3 'Советский союз' 'был велик'

Как сделать вывод чтобы сначала выводились строки совпадения в `name`
2	'Советский спорт'   		'был велик'
3 'Советский союз' 'был велик'
1 'Российский спорт' 'не как советский'
walerus
SELECT 
id, `name`, `text`
FROM
`table`
WHERE
`name` LIKE '%совет%' OR
`text` LIKE '%совет%'
ORDER BY
`name` DESC, `text` DESC
попробуй
Kusss
walerus
Это не то.

Нужно сначала вывести строки в которых есть совпадения по одного столбцу (name) , а только после этого выводить строки с совпадениями в других столбцах (text)
brevis
Можно UNION http://sqlfiddle.com/#!9/d11ef8/2
Только надо будет от дублей избавиться.


_____________
Чатик в телеге
walerus
Kusss
Пробовал мой пример? или просто ответил...
user posted image
killer8080
Цитата (brevis @ 21.12.2017 - 15:16)
Только надо будет от дублей избавиться.

UNION DISTINCT
Kusss
walerus
ты подгоняешь данные под результат
Kusss
brevis
Спасибо, работает.
А как будет выглядеть запрос, если полей поиска будет много ?

или допустим я решу сделать join таблицы ? Может какая статья есть на этот счет ?
Быстрый ответ:

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