Operátor SQL XOR

Operator Sql Xor



Exclusive OR, běžně známý jako XOR, je jedním z nejpopulárnějších a nejužitečnějších logických operátorů v SQL a dalších programovacích jazycích. XOR vrátí hodnotu true, když je pravdivý pouze jeden z poskytnutých operandů, a v opačném případě vrátí hodnotu false.

Stručně řečeno, pro dvě booleovské hodnoty vrátí operátor XOR hodnotu true, pokud se liší. Je to tak jednoduché.

  • true XOR false vrací true
  • false XOR false vrátí hodnotu false
  • true XOR true vrátí hodnotu false

Pojďme prozkoumat, co operátor XOR v SQL dělá a jak jej můžeme použít. Pro demonstrační účely používáme jako základní databázový systém MySQL.







Operátor SQL XOR

V SQL nám operátor XOR umožňuje provádět logické operace XOR mezi dvěma booleovskými výrazy.



Jako každá operace XOR vrací operátor logickou hodnotu true, pokud je přesně jeden z výrazů pravdivý, a v opačném případě vrací logickou hodnotu nepravda.



MySQL podporuje operátor XOR, který nám umožňuje psát složité podmíněné příkazy založené na této logice.





Základní syntaxe je následující:

výraz1 XOR výraz2

Podívejme se na základní použití této funkce.



Základní použití

Zvažte následující příklad, který ukazuje, jak se operátor XOR chová v MySQL při vyhodnocování dvou booleovských výrazů:

vyberte 1 x nebo 1 jako res;

V tomto případě MySQL považuje 1 za pravdivé a 0 za nepravdivé. Vzhledem k tomu, že oba výrazy jsou pravdivé, operátor vrátí hodnotu false takto:

res|
---+
0|

Funkčnost operátoru je zachována, když je jeden z výrazů nebo operandů pravdivý. Příklad je následující:

vyberte 1 x nebo 0 jako res;

V tomto případě, protože je pravdivá pouze jedna hodnota, operátor vrátí hodnotu true následovně:

res|
---+
1|

Pokročilé použití

Podívejme se na pokročilejší příklad použití operátoru XOR pomocí databázové tabulky. K tomu používáme tabulku „zákazník“ ze vzorové databáze Sakila.

Předpokládejme, že chceme načíst seznam zákazníků, kteří jsou buď aktivními nebo neaktivními členy, ale ne oba, z tabulky zákazníků.

V tomto případě je aktivní stav reprezentován 1 a neaktivní stav je reprezentován hodnotou 0.

Můžeme to použít ve spojení s operátorem XOR, abychom toho dosáhli. Zvažte následující příklad dotazu:

SELECT customer_id, first_name, email, active

OD zákazníka

WHERE (aktivní XOR NEaktivní) = 1 limit 3;

To by mělo vrátit odpovídající záznamy takto:

 Detail názvu automaticky generovaného popisu

Tady to máš!

Závěr

V tomto tutoriálu jsme se naučili pracovat a používat operátor XOR v SQL tím, že jsme pokryli různé funkce a použití. Podívali jsme se také na to, jak jej můžeme použít v databázové tabulce k filtrování konkrétních záznamů.