A logikai érték a legegyszerűbb adattípus, amely mindig két lehetséges értéket ad vissza, igazat vagy hamisat. Mindig használhatja, hogy visszaigazolást kapjon IGEN vagy Nem érték formájában.
A MySQL nem tartalmaz beépített Boolean vagy Bool adattípust. Biztosítják a TINYINT adattípust a logikai vagy a logikai adattípusok helyett. MySQL a nulla értéket hamisnak, a nem nulla értéket pedig igaznak tekinti. Ha logikai literálokat szeretne használni, használja az igaz vagy hamis értéket, amelyek mindig 0 és 1 értékre számítanak. A 0 és az 1 az egész értékeket jelenti.
Hajtsa végre a következő utasítást a logikai literálok egész értékeinek megtekintéséhez:
Mysql> Select TRUE, FALSE, true, false, True, False;
Sikeres végrehajtás után a következő eredmény jelenik meg:
MySQL logikai példa
A MySQL táblában tárolhatunk egy logikai értéket egész adattípusként. Hozzunk létre egy táblázatos tanulót, amely bemutatja a logikai adattípus használatát a MySQL-ben:
mysql> CREATE TABLE student ( studentid INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(40) NOT NULL, age VARCHAR(3), pass BOOLEAN );
A fenti lekérdezésben láthatjuk, hogy a pass mező logikai értékként van definiálva, amikor egy tábla definícióját mutatja; a következőképpen tartalmazza a TINIINT-et:
olyan weboldal, mint a coomeet
mysql> DESCRIBE student;
Adjunk hozzá két új sort a fenti táblázathoz a következő lekérdezés segítségével:
mysql> INSERT INTO student(name, pass) VALUES('Peter',true), ('John',false);
A fenti lekérdezés végrehajtása után a MySQL azonnal ellenőrzi a logikai adattípust a táblában. Ha megtalálta a logikai literálokat, akkor a rendszer 0 és 1 egész értékké konvertálja. Hajtsa végre a következő lekérdezést az adatok lekéréséhez a tanulói táblából:
Mysql> SELECT studentid, name, pass FROM student;
A következő kimenetet kapja, ahol az igaz és hamis literált 0 és 1 értékké alakítja át.
Mivel a MySQL mindig a TINYINT-et használja logikai értékként, bármilyen egész értéket beszúrhatunk a logikai oszlopba. Hajtsa végre a következő utasítást:
Mysql> INSERT INTO student(name, pass) VALUES('Miller',2);
A következő eredményt kapod:
Bizonyos esetekben az eredményt igaz és hamis betűkkel kell megadni. Ebben az esetben az if() függvényt a select utasítással kell végrehajtania a következőképpen:
Mysql> SELECT studentid, name, IF(pass, 'true', 'false') completed FROM student1;
A következő kimenetet adja:
MySQL logikai operátorok
A MySQL azt is lehetővé teszi számunkra, hogy logikai adattípusú operátorokat használjunk. Hajtsa végre a következő lekérdezést, hogy megkapja a tábla tanuló összes sikeres eredményét.
SELECT studentid, name, pass FROM student1 WHERE pass = TRUE;
Ez az utasítás a következő kimenetet adja vissza:
A fenti utasítás csak akkor adja vissza a megfelelő eredményt, ha az érték egyenlő 1-gyel IS operátor. Ez az operátor a logikai értékkel érvényesíti az értéket. A következő nyilatkozat ezt magyarázza:
SELECT studentid, name, pass FROM student1 WHERE pass is TRUE;
Az utasítás végrehajtása után a következő eredményt kapja:
Ha látni szeretné a függőben lévő eredményt, használja HAMIS vagy NEM IGAZ operátor az alábbiak szerint:
SELECT studentid, name, pass FROM student1 WHERE pass IS FALSE; OR, SELECT studentid, name, pass FROM student1 WHERE pass IS NOT TRUE;
A következő kimenetet kapod: