2016-01-08 2 views
1

Мой вопрос заключается в следующем:WHERE условие с Multiple LIKE ссылаюсь на несколько строк

У меня есть вход HTML/PHP, который получает меня $_POST['search_query'].

Я хотел бы отфильтровать результаты по заголовку сообщения или по тегам. Независимо от того, что simillar должно появиться в таблице результатов.

Я пытался этот запрос:

SELECT * FROM posts WHERE activado='1' AND (titulo LIKE '%".$_POST['search_query']."%') 
        OR (tag1 LIKE '%".$_POST['search_query']."%') 
        OR (tag2 LIKE '%".$_POST['search_query']."%') 
        OR (tag3 LIKE '%".$_POST['search_query']."%') 

Это фильтрование только строку «título», я должен был бы принести теги строку предложения этого типа тоже.

Я хочу, чтобы на выходе выводились любые simillar Rows, если строка была Titulo, Tag1, Tag2 или Tag3. На моменте только выборка строк титуло с содержанием simillar.

Что мне здесь не хватает? Держу пари, это очень простое изменение. Спасибо всем

+0

Не уверен, что если он будет делать это или нет, но попробовать помещая все подобное в одиночные круглые скобки. –

+0

idk, что конкретно проблема, но, пожалуйста, попробуйте скобки после AND и закройте эту скобку в последней букве ... –

+0

Попробуйте следующее: 'SELECT * FROM posts WHERE activado = '1' AND ((titulo LIKE '%". $ _ POST ['search_query']. "% ') OR (tag1 LIKE'%". $ _ POST ['search_query']. "% ') ИЛИ (tag2 LIKE'%". $ _ POST ['search_query']. "% ') OR (tag3 LIKE'% ". $ _ POST ['search_query']."% ')) ' –

ответ

0

Пожалуйста, попробуйте следующее:

SELECT * FROM posts 
WHERE activado='1' 
AND ((titulo LIKE '%".$_POST['search_query']."%') 
OR (tag1 LIKE '%".$_POST['search_query']."%') 
OR (tag2 LIKE '%".$_POST['search_query']."%') 
OR (tag3 LIKE '%".$_POST['search_query']."%')); 
+1

Спасибо !! Очень полезно –

0

Вы должны изменить WHERE условие, скобки условия, как показано ниже

SELECT * FROM posts 
WHERE activado='1' 
AND titulo LIKE '%".$_POST['search_query']."%' 
AND (tag1 LIKE '%".$_POST['search_query']."%' //notice grouping here 
OR tag2 LIKE '%".$_POST['search_query']."%' 
OR tag3 LIKE '%".$_POST['search_query']."%'); 
+0

Нет. На самом деле это двойной паратизм, как они сказали вначале. Спасибо :) –