Podsumowanie :w tym samouczku dowiesz się, jak używać SQLite IN
operator, aby określić, czy wartość pasuje do dowolnej wartości z listy wartości lub wyniku podzapytania.
Wprowadzenie do SQLite IN
operator
SQLite IN
Operator określa, czy wartość pasuje do dowolnej wartości z listy lub podzapytania. Składnia IN
operator jest następujący:
expression [NOT] IN (value_list|subquery);
Code language: SQL (Structured Query Language) (sql)
expression
może być dowolnym poprawnym wyrażeniem lub kolumną tabeli.
Lista wartości jest listą wartości stałych lub zestawem wyników pojedynczej kolumny zwróconej przez podzapytanie. Zwrócony typ wyrażenia i wartości na liście muszą być takie same.
IN
operator zwraca prawdę lub fałsz w zależności od tego, czy wyrażenie pasuje do dowolnej wartości na liście wartości, czy nie. Aby zanegować listę wartości, użyj NOT IN
operatora.
SQLite IN
przykłady operatorów
Użyjemy Tracks
tabela z przykładowej bazy danych do demonstracji.
Poniższa instrukcja używa IN
operatora, aby zapytać o utwory, których identyfikator typu nośnika to 1 lub 2.
SELECT
TrackId,
Name,
Mediatypeid
FROM
Tracks
WHERE
MediaTypeId IN (1, 2)
ORDER BY
Name ASC;
Code language: SQL (Structured Query Language) (sql)
Wypróbuj
To zapytanie używa OR
operator zamiast IN
operator, aby zwrócić ten sam zestaw wyników, co w powyższym zapytaniu:
SELECT
TrackId,
Name,
MediaTypeId
FROM
Tracks
WHERE
MediaTypeId = 1 OR MediaTypeId = 2
ORDER BY
Name ASC;
Code language: SQL (Structured Query Language) (sql)
Wypróbuj
Jak widać z zapytań, używając IN
operatora jest znacznie krótszy.
Jeśli masz zapytanie, które używa wielu OR
operatorów, możesz rozważyć użycie IN
zamiast tego, aby zapytanie było bardziej czytelne.
SQLite IN
operator z przykładem podzapytania
Poniższe zapytanie zwraca listę identyfikatorów albumów o identyfikatorze wykonawcy 12:
SELECT albumid
FROM albums
WHERE artistid = 12;
Code language: SQL (Structured Query Language) (sql)
Wypróbuj
Aby uzyskać utwory należące do artysty o identyfikatorze 12, możesz połączyć IN
operator z podzapytaniem w następujący sposób:
SELECT
TrackId,
Name,
AlbumId
FROM
Tracks
WHERE
AlbumId IN (
SELECT
AlbumId
FROM
Albums
WHERE
ArtistId = 12
);
Code language: SQL (Structured Query Language) (sql)
Wypróbuj
W tym przykładzie:
- Najpierw podzapytanie zwraca listę identyfikatorów albumów należących do identyfikatora wykonawcy 12.
- Następnie zewnętrzne zapytanie zwraca wszystkie utwory, których identyfikator albumu jest zgodny z listą identyfikatorów albumu zwróconą przez podzapytanie.
SQLite NIE W przykładach
Poniższa instrukcja zwraca listę utworów, których identyfikator gatunku nie znajduje się na liście (1,2,3).
SELECT
trackid,
name,
genreid
FROM
tracks
WHERE
genreid NOT IN (1, 2,3);
Code language: SQL (Structured Query Language) (sql)
Wypróbuj
W tym samouczku nauczyłeś się korzystać z SQLite IN
operatora, aby dopasować wartość do listy wartości lub podzapytania.