0

嗨,我有一个要检查多个条件的 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') 

谢谢!

4

2 回答 2

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 中的任一语句之一。

于 2012-07-09T11:54:12.413 回答
0

这可能与您在最后一个条件下没有关闭字符串的代码有关,试试这个

WHERE ( (a='string' AND b='string') OR (a='otherstring' AND b='otherstring') ) AND (id='1')

于 2012-07-09T11:53:58.053 回答