2013-11-01 5 views
1

Каков правильный синтаксис для следующего оператора SQL?Как записать условие A или B равно нулю, но не оба равны нулю в MYSQL?

SELECT * FROM TABLE WHERE (A = 0 AND B != 0) OR (A!=0 AND B=0) 

Благодаря

Обновлено: Как о негативном случае? Я хотел бы проверить, если А или В не равен нулю, но не как не равна нулю, спасибо

SELECT OperateProductId FROM DPS_UserLoginStatus Where OperateProductId <> 0 XOR OperateIssueId <> 0 
+0

получить все случаи, когда a или b равно нулю, но не оба равны нулю – user782104

ответ

3

Вы ищете логического оператора в XOR:

SELECT * FROM TABLE WHERE A = 0 XOR B = 0 

В терминах других операторов a XOR b (обычно a^b при использовании побитового, а не логического) эквивалентно (a and !b) or (b and !a). Это также эквивалентно: (a or b) and (!a or !b). На английском языке это именно то, что вы ищете: a xor b истинно тогда и только тогда, когда либо a, либо b истинно, но оба они неверны.

Смежные вопросы