Samenvatting :in deze tutorial leer je hoe je de SQLite IN
. gebruikt operator om te bepalen of een waarde overeenkomt met een waarde in een lijst met waarden of een resultaat van een subquery.
Inleiding tot de SQLite IN
telefoniste
De SQLite IN
operator bepaalt of een waarde overeenkomt met een waarde in een lijst of een subquery. De syntaxis van de IN
operator is als volgt:
expression [NOT] IN (value_list|subquery);
Code language: SQL (Structured Query Language) (sql)
De expression
kan elke geldige uitdrukking of een kolom van een tabel zijn.
Een zoeklijst is een lijst met vaste waarden of een resultaatset van een enkele kolom die wordt geretourneerd door een subquery. Het geretourneerde type expressie en waarden in de lijst moeten hetzelfde zijn.
De IN
operator retourneert waar of onwaar, afhankelijk van of de uitdrukking overeenkomt met een waarde in een lijst met waarden of niet. Om de lijst met waarden te negeren, gebruikt u de NOT IN
telefoniste.
SQLite IN
voorbeelden van operatoren
We gebruiken de Tracks
tabel uit de voorbeelddatabase voor de demonstratie.
De volgende instructie gebruikt de IN
operator om de tracks op te vragen waarvan het mediatype-ID 1 of 2 is.
SELECT
TrackId,
Name,
Mediatypeid
FROM
Tracks
WHERE
MediaTypeId IN (1, 2)
ORDER BY
Name ASC;
Code language: SQL (Structured Query Language) (sql)
Probeer het
Deze zoekopdracht gebruikt de OR
operator in plaats van de IN
operator om dezelfde resultatenset als de bovenstaande query te retourneren:
SELECT
TrackId,
Name,
MediaTypeId
FROM
Tracks
WHERE
MediaTypeId = 1 OR MediaTypeId = 2
ORDER BY
Name ASC;
Code language: SQL (Structured Query Language) (sql)
Probeer het
Zoals u kunt zien aan de hand van de zoekopdrachten, gebruikt u de IN
operator is veel korter.
Als u een zoekopdracht heeft die veel OR
. gebruikt operators, kunt u overwegen de IN
. te gebruiken operator om de zoekopdracht leesbaarder te maken.
SQLite IN
operator met een subqueryvoorbeeld
De volgende zoekopdracht retourneert een lijst met album-ID's van artiest-ID 12:
SELECT albumid
FROM albums
WHERE artistid = 12;
Code language: SQL (Structured Query Language) (sql)
Probeer het
Om de nummers te krijgen die bij de artiest-ID 12 horen, kun je de IN
. combineren operator met een subquery als volgt:
SELECT
TrackId,
Name,
AlbumId
FROM
Tracks
WHERE
AlbumId IN (
SELECT
AlbumId
FROM
Albums
WHERE
ArtistId = 12
);
Code language: SQL (Structured Query Language) (sql)
Probeer het
In dit voorbeeld:
- Eerst retourneert de subquery een lijst met album-ID's die bij artiest-ID 12 horen.
- Vervolgens retourneert de buitenste query alle nummers waarvan de album-ID overeenkomt met de album-ID-lijst die door de subquery wordt geretourneerd.
SQLite NIET IN voorbeelden
De volgende instructie retourneert een lijst met nummers waarvan het genre-ID niet in een lijst van (1,2,3) staat.
SELECT
trackid,
name,
genreid
FROM
tracks
WHERE
genreid NOT IN (1, 2,3);
Code language: SQL (Structured Query Language) (sql)
Probeer het
In deze tutorial heb je geleerd hoe je de SQLite IN
. gebruikt operator om een waarde te matchen met een zoeklijst of een subquery.