Shrnutí :v tomto tutoriálu se naučíte používat SQLite IN
operátor k určení, zda hodnota odpovídá nějaké hodnotě v seznamu hodnot nebo výsledku dílčího dotazu.
Úvod do SQLite IN
operátor
SQLite IN
operátor určuje, zda se hodnota shoduje s nějakou hodnotou v seznamu nebo poddotazu. Syntaxe IN
operátor je následující:
expression [NOT] IN (value_list|subquery);
Code language: SQL (Structured Query Language) (sql)
expression
může být jakýkoli platný výraz nebo sloupec tabulky.
Seznam hodnot je seznam pevných hodnot nebo sada výsledků jednoho sloupce vráceného poddotazem. Vrácený typ výrazu a hodnoty v seznamu musí být stejné.
IN
operátor vrací true nebo false v závislosti na tom, zda výraz odpovídá nějaké hodnotě v seznamu hodnot či nikoli. Chcete-li negovat seznam hodnot, použijte NOT IN
operátor.
SQLite IN
příklady operátorů
Použijeme Tracks
tabulky ze vzorové databáze pro ukázku.

Následující příkaz používá IN
operátor pro dotaz na stopy, jejichž ID typu média je 1 nebo 2.
SELECT
TrackId,
Name,
Mediatypeid
FROM
Tracks
WHERE
MediaTypeId IN (1, 2)
ORDER BY
Name ASC;
Code language: SQL (Structured Query Language) (sql)
Zkuste to

Tento dotaz používá OR
operátor namísto IN
operátor vrátí stejnou sadu výsledků jako výše uvedený dotaz:
SELECT
TrackId,
Name,
MediaTypeId
FROM
Tracks
WHERE
MediaTypeId = 1 OR MediaTypeId = 2
ORDER BY
Name ASC;
Code language: SQL (Structured Query Language) (sql)
Zkuste to
Jak můžete vidět z dotazů, pomocí IN
operátor je mnohem kratší.
Pokud máte dotaz, který používá mnoho OR
operátory, můžete zvážit použití IN
místo toho, aby byl dotaz čitelnější.
SQLite IN
operátor s příkladem poddotazu
Následující dotaz vrátí seznam id alba s id interpreta 12:
SELECT albumid
FROM albums
WHERE artistid = 12;
Code language: SQL (Structured Query Language) (sql)
Zkuste to

Chcete-li získat skladby, které patří k id interpreta 12, můžete kombinovat IN
operátor s poddotazem takto:
SELECT
TrackId,
Name,
AlbumId
FROM
Tracks
WHERE
AlbumId IN (
SELECT
AlbumId
FROM
Albums
WHERE
ArtistId = 12
);
Code language: SQL (Structured Query Language) (sql)
Zkuste to

V tomto příkladu:
- Nejprve dílčí dotaz vrátí seznam ID alb, která patří k ID interpreta 12.
- Vnější dotaz pak vrátí všechny skladby, jejichž ID alba se shoduje se seznamem ID alb vráceným dílčím dotazem.
Příklady SQLite NENÍ V
Následující příkaz vrátí seznam skladeb, jejichž ID žánru není v seznamu (1,2,3).
SELECT
trackid,
name,
genreid
FROM
tracks
WHERE
genreid NOT IN (1, 2,3);
Code language: SQL (Structured Query Language) (sql)
Zkuste to

V tomto tutoriálu jste se naučili používat SQLite IN
operátor pro přiřazení hodnoty k seznamu hodnot nebo dílčímu dotazu.