MySQL AND i OR Operatori

Operatori AND i OR se koriste radi definisanja strozijih kriterijuma za izvestaje iz tabele.

Operator AND koristite kada zadajete minimum dva kriterijuma koja MORAJU biti ispunjena, u smislu da mora biti poklapanja u podacima.

U prethodnoj lekciji smo spomenuli AND operator izvlaceci sve podatke iza tabele "kucni", pri poklapanju imena i prezimena za Zorana Zorisica:

SELECT * FROM kucni WHERE ime='Zoran' AND prezime='Zorisic';

mysql> SELECT * FROM kucni WHERE ime='Zoran' AND prezime='Zorisic';
+----+-------+---------+---------+
| id | ime   | prezime | telefon |
+----+-------+---------+---------+
|  3 | Zoran | Zorisic |  999555 |
+----+-------+---------+---------+
1 row in set (0.00 sec)

mysql>

Dakle, kompletan izvestaj iz tabele dobijemo KADA su zadovoljeni uslovi da je ime='Zoran', ALI I prezime='Zorisic'.

Sto se OR operatora tice, on nam daje mogucnost u smislu: "Zadovolji Kriterijum_1 ILI Kriterijum_2":

mysql> SELECT * FROM kucni WHERE ime='Zoran' OR telefon='444555';
+----+-------+---------+---------+
| id | ime   | prezime | telefon |
+----+-------+---------+---------+
|  1 | Petar | Peric   |  444555 |
|  3 | Zoran | Zorisic |  999555 |
+----+-------+---------+---------+
2 rows in set (0.00 sec)

mysql>

U prethodnoj komandi smo zadovoljili dva kriterijuma, ali se odnose na razlicte unose (redove) u tabeli.

Da smo koristili AND umesto OR, ne bi dobili upotrebljiv rezultat:

mysql> SELECT * FROM kucni WHERE ime='Zoran' AND telefon='444555';
Empty set (0.00 sec)

mysql>
Zasto? Zato sto ne postoji Zoran koji ima telefon 444555. Postoji samo Zoran Zorisic sa telefonom 999555.