Lühidalt öeldes tagastab operaator XOR kahe Boole'i väärtuse puhul tõene, kui need on erinevad. Nii lihtne see ongi.
- true XOR false tagastab tõene
- vale
- true XOR true tagastab false
Uurime, mida XOR-i operaator SQL-is teeb ja kuidas seda kasutada. Demonstreerimiseks kasutame baasandmebaasisüsteemina MySQL-i.
SQL XOR operaator
SQL-is võimaldab operaator XOR meil sooritada loogilisi XOR-operatsioone kahe Boole'i avaldise vahel.
Nagu iga XOR-operatsioon, tagastab operaator Boole'i tõesuse tõene, kui täpselt üks avaldistest on tõene, ja tagastab Boole'i väärtuse Väär.
MySQL toetab XOR-i operaatorit, mis võimaldab meil selle loogika alusel kirjutada keerulisi tingimuslauseid.
Põhiline süntaks on järgmine:
avaldis1 XOR avaldis2Uurime selle funktsiooni mõningaid põhilisi kasutusviise.
Põhikasutus
Vaatleme järgmist näidet, mis näitab, kuidas XOR-i operaator MySQL-is kahe Boole'i avaldise hindamisel käitub:
valige res. 1 x või 1;Sel juhul käsitleb MySQL väärtust 1 tõese ja 0 valena. Seega, kuna mõlemad avaldised on tõesed, tagastab operaator vale järgmiselt:
res|---+
0|
Operaatori funktsionaalsus säilib, kui üks avaldistest või operandidest on tõene. Näide on järgmine:
valige res. 1 x või 0;Sel juhul, kuna tõene on ainult täpselt üks väärtus, tagastab operaator väärtuse tõene järgmiselt:
res|---+
1|
Täpsem kasutamine
Vaatame XOR-operaatori täpsemat näidet andmebaasitabeli abil. Selle jaoks kasutame Sakila näidisandmebaasis olevat tabelit “klient”.
Oletame, et tahame klientide tabelist tuua loendi klientidest, kes on aktiivsed või mitteaktiivsed liikmed, kuid mitte mõlemad.
Sel juhul tähistab aktiivset olekut 1 ja mitteaktiivset olekut väärtusega 0.
Selle saavutamiseks saame seda kasutada koos operaatoriga XOR. Mõelge järgmisele päringu näidisele:
VALI kliendi_id, eesnimi, e-post, aktiivneKliendilt
WHERE (aktiivne XOR MITTE aktiivne) = 1 piir 3;
See peaks tagastama vastavad kirjed järgmiselt:
Siin on see!
Järeldus
Selles õpetuses õppisime SQL-is XOR-operaatoriga töötamist ja kasutamist, käsitledes erinevaid funktsioone ja kasutusvõimalusi. Samuti uurisime, kuidas saaksime seda andmebaasi tabelis konkreetsete kirjete filtreerimiseks kasutada.