多个 LIKE 引用多行的 WHERE 条件

WHERE condition with Multiple LIKE referring to multiple rows

我有一个 html/php 输入让我 $_POST['search_query']

我想按 post 标题或标签过滤结果。任何类似的东西都应该出现在结果中 table.

我正在尝试这个查询:

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']."%') 

它只过滤 "titulo" 行,我还需要获取类似的标签行。

如果行是 Titulo、Tag1、Tag2 或 Tag3,我希望输出带来任何正在提取的类似行。目前仅获取具有相似内容的标题行。

我在这里错过了什么? 我敢打赌这是一个非常简单的改变。

您应该更改您的 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']."%'); 

请试试这个:

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']."%') );