2

MySQL に問題があります。1 つの条件を満たすすべての行を選択する必要があります。条件が 2 つである場合は 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

1 つの条件が true で他の条件が false である場合にのみ、true になる必要があります。

PS条件の数は可変です

4

3 に答える 3

2
SELECT * FROM 
WHERE IF(<cond1>, 1, 0)+IF(<cond2>, 1, 0)+(...)+IF(<condN>, 1, 0) = 1
于 2013-06-27T11:47:28.583 に答える
0

ネストされた xor を使用してから、count を使用して、いくつが満たされているかを確認しますか? ここでのアイデアだけで、問題が完全にはわかりません。

于 2013-06-27T11:40:53.350 に答える