我有一个html / php输入,让我$_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']."%')
它只过滤了“titulo”行,我也需要获取simillar标签行。
如果行是Titulo,Tag1,Tag2或Tag3,我希望输出带来任何simillar Rows。在这里,我们只获得了带有相似内容的titulo行。
我在这里缺少什么? 我打赌这是一个非常简单的改变。
答案 0 :(得分: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']."%');
答案 1 :(得分: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']."%') );