Używamy cookies, żeby zwiększyć Twoje doświadczenia na stronie
CodeWorlds

Łączenie warunków: AND, OR, NOT

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.

AND - oba warunki naraz

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.

OR - wystarczy jeden warunek

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.

NOT - zaprzeczenie

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".

Nawiasy - kolejność ma znaczenie

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!

Przejdź do CodeWorlds