Riepilogo :in questo tutorial imparerai come usare SQLite IN
per determinare se un valore corrisponde a qualsiasi valore in un elenco di valori o al risultato di una sottoquery.
Introduzione a SQLite IN
operatore
SQLite IN
determina se un valore corrisponde a qualsiasi valore in un elenco o in una sottoquery. La sintassi di IN
operatore è il seguente:
expression [NOT] IN (value_list|subquery);
Code language: SQL (Structured Query Language) (sql)
L'expression
può essere qualsiasi espressione valida o una colonna di una tabella.
Un elenco di valori è un elenco di valori fissi o un set di risultati di una singola colonna restituita da una sottoquery. Il tipo di espressione e i valori restituiti nell'elenco devono essere gli stessi.
Il IN
l'operatore restituisce true o false a seconda che l'espressione corrisponda o meno a qualsiasi valore in un elenco di valori. Per negare l'elenco dei valori, usi NOT IN
operatore.
SQLite IN
esempi di operatori
Useremo le Tracks
tabella dal database di esempio per la dimostrazione.
La seguente istruzione utilizza il IN
operatore per interrogare le tracce il cui ID del tipo di supporto è 1 o 2.
SELECT
TrackId,
Name,
Mediatypeid
FROM
Tracks
WHERE
MediaTypeId IN (1, 2)
ORDER BY
Name ASC;
Code language: SQL (Structured Query Language) (sql)
Provalo
Questa query utilizza OR
operatore invece di IN
per restituire lo stesso set di risultati della query precedente:
SELECT
TrackId,
Name,
MediaTypeId
FROM
Tracks
WHERE
MediaTypeId = 1 OR MediaTypeId = 2
ORDER BY
Name ASC;
Code language: SQL (Structured Query Language) (sql)
Provalo
Come puoi vedere dalle query, utilizzando il IN
operatore è molto più breve.
Se hai una query che utilizza molti OR
operatori, puoi considerare l'utilizzo di IN
operatore invece per rendere la query più leggibile.
SQLite IN
operatore con un esempio di sottoquery
La query seguente restituisce un elenco di ID album dell'ID artista 12:
SELECT albumid
FROM albums
WHERE artistid = 12;
Code language: SQL (Structured Query Language) (sql)
Provalo
Per ottenere i brani che appartengono all'ID artista 12, puoi combinare il IN
operatore con una sottoquery come segue:
SELECT
TrackId,
Name,
AlbumId
FROM
Tracks
WHERE
AlbumId IN (
SELECT
AlbumId
FROM
Albums
WHERE
ArtistId = 12
);
Code language: SQL (Structured Query Language) (sql)
Provalo
In questo esempio:
- In primo luogo, la sottoquery restituisce un elenco di ID album che appartengono all'ID artista 12.
- Quindi, la query esterna restituisce tutte le tracce il cui ID album corrisponde all'elenco di ID album restituito dalla sottoquery.
SQLite NON NEGLI esempi
La seguente istruzione restituisce un elenco di brani il cui ID di genere non è in un elenco di (1,2,3).
SELECT
trackid,
name,
genreid
FROM
tracks
WHERE
genreid NOT IN (1, 2,3);
Code language: SQL (Structured Query Language) (sql)
Provalo
In questo tutorial, hai imparato come usare SQLite IN
operatore per abbinare un valore a un elenco di valori o a una sottoquery.