Często jeden warunek to za mało. Skryba chce zwojów, które są jednocześnie nowe i dostępne, albo autorów z Polski lub z Grecji. Do łączenia warunków służą trzy słowa: AND, OR i NOT.
Operator AND wymaga, by spełnione były wszystkie połączone warunki:
1SELECT * FROM ksiazki
2WHERE rok_wydania > 1900 AND dostepna = 1;To znaczy: "Książki wydane po 1900 roku ORAZ jednocześnie dostępne". Wiersz trafia do wyniku tylko wtedy, gdy oba warunki są prawdziwe.
Operator OR wymaga, by spełniony był przynajmniej jeden z warunków:
1SELECT * FROM autorzy
2WHERE kraj = 'Polska' OR kraj = 'Grecja';To znaczy: "Autorzy z Polski LUB z Grecji". Wystarczy, że choć jeden warunek jest prawdziwy.
Operator NOT odwraca warunek - zwraca to, czego on NIE spełnia:
1SELECT * FROM ksiazki
2WHERE NOT dostepna = 1;To znaczy: "Książki, które NIE są dostępne".
Gdy mieszamy
AND i OR, używaj nawiasów ( ), aby jasno określić kolejność. AND ma wyższy priorytet niż OR, więc nawiasy chronią Cię przed pomyłką:1SELECT * FROM ksiazki
2WHERE (kategoria_id = 1 OR kategoria_id = 2) AND cena > 30;Tu najpierw sprawdzamy kategorię (jedna z dwóch), a dopiero potem cenę. Nawiasy działają jak w matematyce - to, co w środku, liczone jest najpierw. Pamiętaj o nich, @name!