您好我有一个mysql查询,有多个条件要检查,所以我用()分隔每个,例如:
WHERE (a='string' AND b='string') OR (a='otherstring' AND b='otherstring)
我遇到的问题是我必须添加用户检查,我不知道是否必须再次使用(),例如,这是正确的吗?
WHERE ((a='string' AND b='string') OR (a='otherstring' AND b='otherstring)) AND (id='1')
谢谢!
答案 0 :(得分:1)
WHERE
(
(a='string' AND b='string')
OR (a='otherstring' AND b='otherstring')
)
AND id='1'
这将找到id为1的所有记录,其中a.string = b.string或a.string = otherstring。
编辑:只是为了进一步澄清:
基本上,括号内的任何内容都等同于:例如:
// Condition 1
(
this=somethingelse
and this2=somethingelse2
)
// Condition 2
and
(
someCondition=anotherConidition
and
// Condition 3
(
thirdCondition=anotherCondition3
or thirdCondition2=anotherCondition4
)
)
在这个例子中。条件1中的两个条款都必须得到满足。条件2也必须在第一个someCondition HAS to equal anotherCondition
以及条件3中的任何一个语句中得到满足。
答案 1 :(得分:0)
这可能与您在最后一个条件下没有关闭字符串的代码有关尝试此
WHERE
(
(a='string' AND b='string') OR (a='otherstring' AND b='otherstring')
)
AND (id='1')