如何在MySQL中使用AND和OR
我想在我的网站上创建一个搜索。在搜索表单中,我有用于搜索的类别和输入查询。例如,在类别im选择中,jmovies和在输入查询中,ashi的im类型关键字 我的代码如何在MySQL中使用AND和OR,mysql,Mysql,我想在我的网站上创建一个搜索。在搜索表单中,我有用于搜索的类别和输入查询。例如,在类别im选择中,jmovies和在输入查询中,ashi的im类型关键字 我的代码 SELECT * FROM master_post WHERE category = 'jmovies' AND master_post_name LIKE '%ashi%' OR altname LIKE '%ashi%' 所以category=jmovies和keyword=ashi 例如,我有这样的桌子
SELECT *
FROM master_post
WHERE category = 'jmovies'
AND master_post_name LIKE '%ashi%'
OR altname LIKE '%ashi%'
所以category=jmovies和keyword=ashi
例如,我有这样的桌子
category master_post_name alt_name
=========== ================== ===============
JMovies ashi_include_1 not_include
JMovies ashi_include_2 not_include
JMovies ashi_include_3 not_include
JMovies not_include ashi_include_1
JMovies not_include not_include
Drama ashi_in_drama ashi_include_2
category master_post_name alt_name
=========== ================== ===============
JMovies ashi_include_1 not_include
JMovies ashi_include_2 not_include
JMovies ashi_include_3 not_include
JMovies not_include ashi_include_1
如果我使用该代码运行,结果是
category master_post_name alt_name
=========== ================== ===============
JMovies ashi_include_1 not_include
JMovies ashi_include_2 not_include
JMovies ashi_include_3 not_include
JMovies not_include ashi_include_1
Drama ashi_in_drama ashi_include_2
问题是,由于我选择了电影,所以我的结果中不应该有戏剧类,即使戏剧类在《大师邮报》或《另类名字》中有ashi
结果一定是这样
category master_post_name alt_name
=========== ================== ===============
JMovies ashi_include_1 not_include
JMovies ashi_include_2 not_include
JMovies ashi_include_3 not_include
JMovies not_include ashi_include_1
JMovies not_include not_include
Drama ashi_in_drama ashi_include_2
category master_post_name alt_name
=========== ================== ===============
JMovies ashi_include_1 not_include
JMovies ashi_include_2 not_include
JMovies ashi_include_3 not_include
JMovies not_include ashi_include_1
即使im choicejmovies和not fill输入关键字结果也不仅显示jmovies,还显示了戏剧
注意:alt\u name和master\u post\u name具有相同的关键字。我不是专家,但请用括号括起来:
SELECT * FROM master_post
WHERE category = 'jmovies' AND (master_post_name LIKE '%ashi%' OR altname LIKE '%ashi%')
查看此答案:我不确定是否正确理解了您的问题,但您可以尝试以下查询:
SELECT * FROM master_post
WHERE category = 'jmovies' AND (master_post_name LIKE '%ashi%' OR altname LIKE '%ashi%')
我怀疑这里的“问题”在于AND运算符的优先级高于OR运算符。这不就是在查询中添加一些括号的情况吗?请参阅括号?我希望你指的是括号@Chris:-)啊,我明白了,我知道必须用“(“and”)”但我不知道怎么用它,也不知道它叫什么名字,所以这就是括号。