logo

MySQL Boolean

Booleov je najjednostavniji tip podataka koji uvijek vraća dvije moguće vrijednosti, bilo true ili false. Uvijek se može koristiti za dobivanje potvrde u obliku vrijednosti YES ili No.

MySQL ne sadrži ugrađeni Boolean ili Bool tip podataka. Oni pružaju a TINYINT tip podataka umjesto Boolean ili Bool tipova podataka. MySQL vrijednost nula smatra lažnom, a vrijednost različitu od nule istinitom. Ako želite koristiti Booleove literale, upotrijebite true ili false koji uvijek daju vrijednost 0 i 1. 0 i 1 predstavljaju cjelobrojne vrijednosti.

Izvršite sljedeću naredbu da vidite cjelobrojne vrijednosti Booleovih literala:

 Mysql> Select TRUE, FALSE, true, false, True, False; 

Nakon uspješnog izvođenja pojavljuje se sljedeći rezultat:

MySQL Boolean

MySQL Booleov primjer

Booleovu vrijednost možemo pohraniti u MySQL tablicu kao cjelobrojni tip podataka. Kreirajmo tablicu učenika koja demonstrira korištenje tipa podataka Boolean u MySQL-u:

 mysql> CREATE TABLE student ( studentid INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(40) NOT NULL, age VARCHAR(3), pass BOOLEAN ); 

U gornjem upitu možemo vidjeti da je polje prolaza definirano kao Booleov kada se prikazuje definicija tablice; sadrži TINIINT kako slijedi:

ime od
 mysql> DESCRIBE student; 

MySQL Boolean

Dodajmo dva nova reda u gornju tablicu uz pomoć sljedećeg upita:

 mysql> INSERT INTO student(name, pass) VALUES('Peter',true), ('John',false); 

Kada se gornji upit izvrši, MySQL odmah provjerava Booleov tip podataka u tablici. Ako su Booleovi literali pronađeni, bit će pretvoreni u cjelobrojne vrijednosti 0 i 1. Izvršite sljedeći upit da biste dobili podatke iz tablice učenika:

 Mysql> SELECT studentid, name, pass FROM student; 

Dobit ćete sljedeći izlaz gdje se pravi i lažni literal pretvaraju u vrijednosti 0 i 1.

MySQL Boolean

Budući da MySQL uvijek koristi TINYINT kao Boolean, također možemo umetnuti bilo koju cjelobrojnu vrijednost u Booleov stupac. Izvršite sljedeću izjavu:

 Mysql> INSERT INTO student(name, pass) VALUES('Miller',2); 

Dobit ćete sljedeći rezultat:

MySQL Boolean

U nekim slučajevima morate dobiti rezultat u istinitim i lažnim literalima. U tom slučaju trebate izvršiti funkciju if() s naredbom select na sljedeći način:

 Mysql> SELECT studentid, name, IF(pass, 'true', 'false') completed FROM student1; 

To će dati sljedeći izlaz:

MySQL Boolean

MySQL Booleovi operatori

MySQL nam također omogućuje korištenje operatora s Boolean tipom podataka. Izvršite sljedeći upit da dobijete sve prolazne rezultate učenika tablice.

 SELECT studentid, name, pass FROM student1 WHERE pass = TRUE; 

Ova izjava vraća sljedeći izlaz:

MySQL Boolean

Gornja izjava vraća rezultat prolaza samo ako je vrijednost jednaka 1. To možemo popraviti korištenjem JE operater. Ovaj operator potvrđuje vrijednost Booleovom vrijednošću. Sljedeća izjava objašnjava ovo:

 SELECT studentid, name, pass FROM student1 WHERE pass is TRUE; 

Nakon izvršenja ove naredbe, dobit ćete sljedeći rezultat:

MySQL Boolean

Ako želite vidjeti rezultat na čekanju, koristite JE LAŽNO ili NIJE ISTINA operater kao ispod:

 SELECT studentid, name, pass FROM student1 WHERE pass IS FALSE; OR, SELECT studentid, name, pass FROM student1 WHERE pass IS NOT TRUE; 

Dobit ćete sljedeći izlaz:

MySQL Boolean