Resumo :neste tutorial, você aprenderá como usar o SQLite
IN
operador para determinar se um valor corresponde a qualquer valor em uma lista de valores ou um resultado de uma subconsulta. Introdução ao SQLite IN
operador
O SQLite
IN
O operador determina se um valor corresponde a qualquer valor em uma lista ou subconsulta. A sintaxe do IN
operador é o seguinte:expression [NOT] IN (value_list|subquery);
Code language: SQL (Structured Query Language) (sql)
A
expression
pode ser qualquer expressão válida ou uma coluna de uma tabela. Uma lista de valores é uma lista de valores fixos ou um conjunto de resultados de uma única coluna retornada por uma subconsulta. O tipo de expressão e os valores retornados na lista devem ser os mesmos.
O
IN
O operador retorna verdadeiro ou falso dependendo se a expressão corresponde a qualquer valor em uma lista de valores ou não. Para negar a lista de valores, você usa o NOT IN
operador. SQLite IN
exemplos de operadores
Usaremos as
Tracks
tabela do banco de dados de exemplo para a demonstração. A instrução a seguir usa o
IN
operador para consultar as faixas cujo id de tipo de mídia é 1 ou 2. SELECT
TrackId,
Name,
Mediatypeid
FROM
Tracks
WHERE
MediaTypeId IN (1, 2)
ORDER BY
Name ASC;
Code language: SQL (Structured Query Language) (sql)
Tente
Esta consulta usa o
OR
operador em vez do IN
operador para retornar o mesmo conjunto de resultados da consulta acima:SELECT
TrackId,
Name,
MediaTypeId
FROM
Tracks
WHERE
MediaTypeId = 1 OR MediaTypeId = 2
ORDER BY
Name ASC;
Code language: SQL (Structured Query Language) (sql)
Tente
Como você pode ver nas consultas, usando o
IN
operador é muito mais curto. Se você tiver uma consulta que usa muitos
OR
operadores, você pode considerar usar o IN
em vez disso, para tornar a consulta mais legível. SQLite IN
operador com um exemplo de subconsulta
A consulta a seguir retorna uma lista de ID de álbum do ID de artista 12:
SELECT albumid
FROM albums
WHERE artistid = 12;
Code language: SQL (Structured Query Language) (sql)
Tente
Para obter as faixas que pertencem ao ID do artista 12, você pode combinar o
IN
operador com uma subconsulta da seguinte forma:SELECT
TrackId,
Name,
AlbumId
FROM
Tracks
WHERE
AlbumId IN (
SELECT
AlbumId
FROM
Albums
WHERE
ArtistId = 12
);
Code language: SQL (Structured Query Language) (sql)
Tente
Neste exemplo:
- Primeiro, a subconsulta retorna uma lista de IDs de álbuns que pertencem ao ID de artista 12.
- Em seguida, a consulta externa retorna todas as faixas cujo ID do álbum corresponde à lista de IDs do álbum retornada pela subconsulta.
Exemplos de SQLite NOT IN
A instrução a seguir retorna uma lista de faixas cujo id de gênero não está em uma lista de (1,2,3).
SELECT
trackid,
name,
genreid
FROM
tracks
WHERE
genreid NOT IN (1, 2,3);
Code language: SQL (Structured Query Language) (sql)
Tente
Neste tutorial, você aprendeu como usar o SQLite
IN
operador para corresponder um valor com uma lista de valores ou uma subconsulta.