Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Поиск по нескольким значениям
maximka787  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1228
Пользователь №: 2705
На форуме: 9 лет, 3 месяца, 29 дней
Карма: 1




Ребят, посоветуйте, как написать простой запрос на поиск LIKE.

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

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


--------------------
..Работает - не трогай!
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
kostr  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Пользователь
Сообщений: 67
Пользователь №: 41917
На форуме: 1 год, 2 месяца, 2 дня
Карма: 3




А какой нужен результат - где есть все эти слова или хотя бы одно?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
maximka787  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1228
Пользователь №: 2705
На форуме: 9 лет, 3 месяца, 29 дней
Карма: 1




Нужно получить все id в поле имена которых присутствует массив фраз.

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

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


--------------------
..Работает - не трогай!
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
kostr  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Пользователь
Сообщений: 67
Пользователь №: 41917
На форуме: 1 год, 2 месяца, 2 дня
Карма: 3




На вид все правильно у вас.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
TranceIT  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



...Один я одинаковый...
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1732
Пользователь №: 19760
На форуме: 7 лет, 20 дней
Карма: 58




Меня данный пост натолкнул на мысль:
Почему в MySQL нет оператора LIKE IN? Я покурил немного гугла и наткнулся на такое решение.

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


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


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

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

user posted image
PM
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5493
Пользователь №: 35718
На форуме: 4 года, 17 дней
Карма: 167




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

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


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
maximka787  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1228
Пользователь №: 2705
На форуме: 9 лет, 3 месяца, 29 дней
Карма: 1




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

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


--------------------
..Работает - не трогай!
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса