2013-06-27 45 views
2

我有一個MySQL的問題。我必須選擇僅滿足一個條件的所有行。如果條件是兩個異或操作技巧,但條件更多,這不是解決方案。必須使這些邏輯操作:查詢多個XOR

答: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
答:1 B:0 C:0 => 1
答:1 B:0 C:0 d:0 => 1
A:1- B:0 C:1 D:0 => 0

只有當一個條件爲真,而其他條件爲真時,它必須爲真。

PS條件的數量是可變的

+0

布爾運算符的異或是使用不相等的運算符(MySQL中的'<>'或'!=')。 – GolezTrol

回答

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

太棒了,它的工作原理! :-) 謝謝! – DocGono

+0

謝謝,它的工作原理,但我想知道爲什麼這個簡單而明顯的表達式不起作用:在MySQL中「WHERE(msgSendType ='到'XOR msgSendType ='cc'XOR msgSendType ='bcc')»? –

+0

取決於你想達到什麼以及你的意思是「不行」。 –

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

使用嵌套異或再使用計數,看看有多少人滿意?只是一個想法,我不完全知道這個問題。