[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Поиск по нескольким значениям
maximka787
Ребят, посоветуйте, как написать простой запрос на поиск LIKE.

Есть таблица id, name.

Нужно найти в таблице все ID которые соответствуют name LIKE '%слово%'. Но поиск может содержать несколько разных слов. Я смотрел OR и IN, но не пойму, как правильно сделать. Все пишут по разному.

_____________
..Работает - не трогай!
kostr
А какой нужен результат - где есть все эти слова или хотя бы одно?
maximka787
Нужно получить все id в поле имена которых присутствует массив фраз.

Вот я сейчас делаю, работает. Пока не понял, верно ли, но работет.

SELECT `id`  
FROM `users`
WHERE `name` LIKE '%макс%'
OR `name` LIKE '%иван%'
OR `name` LIKE '%алексан%'


_____________
..Работает - не трогай!
kostr
На вид все правильно у вас.
TranceIT
Меня данный пост натолкнул на мысль:
Почему в MySQL нет оператора LIKE IN? Я покурил немного гугла и наткнулся на такое решение.

SELECT `id` FROM `users` WHERE `name` REGEXP 'макс|иван|алексан'


Нет возможности проверить, рабочий ноут далеко. Как по скорости будет?

_____________
Безвозмездно помогаю только тем, кто сам пытается что-то сделать.

Остальным за WMR
Даже если там 10 строк кода!
Даже если мне это ничего не стоит!
Даже если вы нуб!

user posted image
Valick
Цитата (TranceIT @ 26.12.2015 - 00:34)
Меня данный пост натолкнул на мысль:
Почему в MySQL нет оператора LIKE IN?

ну наверно потому, что в MySQL есть полнотекстовый поиск

_____________
Стимулятор ~yoomoney - 41001303250491
maximka787
TranceIT
Да, тоже рабочий пример. Аналог того, что у меня. К сожалению я не знаю как проверить скорость. Таблица мала, но на глаз одинаково работают.

В любом случае вопрос решен. Всем спасибо.

_____________
..Работает - не трогай!
Быстрый ответ:

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