使用多个XOR进行查询

时间:2013-06-27 11:35:40

标签: mysql xor

我遇到了MySQL的问题。我必须选择只满足一个条件的所有行。如果条件是两个XOR就可以了,但是在更多条件下它不是解决方案。必须进行这些逻辑操作:

A:1 B:1 C:1 => 0
A:0 B:0 C:0 => 0
A:0 B:1 C:1 => 0
A:0 B:0 C:1 => 1
A:1 B:0 C:0 => 1
A:1 B:0 C:0 D:0 => 1
A:1 B:0 C:1 D:0 => 0

只有当一个条件为真且其他条件为假时,它才必须为真。

PS条件数量可变

3 个答案:

答案 0 :(得分:2)

select * from your_table
where A+B+C+D = 1

答案 1 :(得分:2)

SELECT * FROM 
WHERE IF(<cond1>, 1, 0)+IF(<cond2>, 1, 0)+(...)+IF(<condN>, 1, 0) = 1

答案 2 :(得分:0)

使用嵌套的xors然后使用count来查看满足的数量?这里只是一个想法,我并不完全清楚这个问题。