多个 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']."%') );
我有一个 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']."%') );