2014-09-18 5 views
0

Что было бы правильным оператором SQL, так что, когда я ищу два слова, например, например «текстовое поле» в текстовом поле, он вернет все результаты, имеющие «текст» и «поле», в нем с использованием инструкции LIKE? Я не могу найти правильные условия для поиска. Если возможно, я хочу сделать его динамичным. Например, если пользователь ищет 5 слов, все 5 слов будут в инструкции Like. Я пытаюсь добиться утверждения примерно так.Оператор MySQL LIke - несколько слов

SELECT * 
FROM TABLE 
WHERE SEARCH (LIKE %searchterm1%) 
    OR (LIKE %searchterm2%) 
    OR (LIKE %searchterm3%) .... 
+0

Вы хотите полнотекстовый поиск. Погугли это. Также см. Http://stackoverflow.com/questions/17009208/mysql-fulltext-search-in-php-using-string-contaning-keywords – AK47

+0

Я думаю, что было бы проще использовать регулярное выражение для управления такими проблемами – iamawebgeek

ответ

0

Вот пример заявления SQL SELECT, который использует Одноименные оператор сравнения

SELECT t.* 
    FROM mytable t 
WHERE t.col LIKE CONCAT('%','cdef','%') 
    AND t.col LIKE CONCAT('%','hijk','%') 
    AND t.col LIKE CONCAT('%','mnop','%') 

Только строки, которые имеют значение в col столбца, который содержит все строки 'cdef', 'hijk' и 'mnop' будет возвращен.


0 Вы особенно спросили насчет оператора сравнения LIKE. Существует также оператор REGEXP, который соответствует регулярным выражениям. И функция полнотекстового поиска может соответствовать вашему варианту использования.

Смежные вопросы