2014-01-17 4 views
6

У меня есть таблица, как показано нижеИспользование исключающее или в MySQL

Таблица Foobar

|foo|bar| 
--------- 
| 1 | 1 | 
| 1 | 0 | 
| 0 | 1 | 
| 0 | 0 | 

мне нужно, чтобы быть в состоянии сделать что-то подобное этому

select * from foobar 
where foo = 1 or bar = 1 

Что бы вернуть ниже

|foo|bar| 
--------- 
| 1 | 0 | 
| 0 | 1 | 

Это означает, что возвращаемое значение равно 1 для значения. Есть такая вещь, как XOR в mysql, которая функционирует так?

+1

http://sqlfiddle.com/#!2/187088/4/0 – Shashi

+0

И документация я нашел, казалось, прибегая к помощи исключить краткое и, прежде всего, «четкое» объяснение того, действительно ли Xor, реализованный в MySQL, был «эксклюзивным», а не какой-то странной (по мне) побитовой операцией – TheMightyLlama

+0

Да, документация MySql - ОЧЕНЬ резкое чтение. Сначала я проверяю стек. Я не уверен, как вопрос о том, как работает оператор ACTUALLY, приведет к самоуверенным ответам или спаму. Этот вопрос не должен быть закрыт. – p1l0t

ответ

9

Да, XOR. Оператор MySQL XOR проверяет два операнда (или выражения) и возвращает TRUE, если один или другой, но не оба ИСТИНА.

select * from foobar 
where foo = 1 XOR bar = 1 

Фактическое математическое представление уравнения XOR "A XOR B" является "(A AND (NOT B)) OR ((NOT A) AND B)".

+0

только немногие знают XOR, это отличная помощь. – zero8

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