Gdy warunków z
OR jest dużo, zapytanie robi się długie i nieczytelne. Na szczęście Biblioteka daje nam elegancki skrót: operator IN dla listy dozwolonych wartości.Zamiast pisać wiele warunków
OR, podajemy listę wartości w nawiasach:1SELECT * FROM ksiazki
2WHERE kategoria_id IN (1, 2, 3);To znaczy: "Książki, których
to 1 LUB 2 LUB 3". Jest to dokładny odpowiednik:kategoria_id
1SELECT * FROM ksiazki
2WHERE kategoria_id = 1 OR kategoria_id = 2 OR kategoria_id = 3;ale o wiele krótszy i czytelniejszy!
Operator
IN działa też z tekstem - pamiętaj wtedy o pojedynczych cudzysłowach przy każdej wartości:1SELECT * FROM autorzy
2WHERE kraj IN ('Polska', 'Grecja', 'Egipt');To znaczy: "Autorzy z Polski, Grecji lub Egiptu". Wartości w nawiasie oddzielamy przecinkami.
Gdy lista zawiera liczby, cudzysłowów nie używamy:
1SELECT * FROM ksiazki
2WHERE kategoria_id IN (1, 3, 5);Zapamiętaj, @name:
IN to Twój sprzymierzeniec, gdy chcesz wybrać kilka konkretnych wartości z jednej kolumny. Krótszy zapis, mniej pomyłek - prawdziwa sztuka skryby!