Resumo : neste tutorial, você aprenderá como usar o IN
operador SQLite para determinar se um valor corresponde a qualquer valor em uma lista de valores ou ao resultado de uma subconsulta.
Introdução ao IN
operador SQLite
O operador SQLite IN
determina se um valor corresponde a qualquer valor em uma lista ou subconsulta . A sintaxe do IN
operador é a seguinte:
expression [NOT] IN (value_list|subquery);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Pode expression
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 retornado e os valores na lista devem ser iguais.
O IN
operador retorna verdadeiro ou falso dependendo se a expressão corresponde ou não a qualquer valor em uma lista de valores. Para negar a lista de valores, você usa o NOT IN
operador.
IN
Exemplos de operadores SQLite
Usaremos a Tracks
tabela do banco de dados de amostra para a demonstração.
A instrução a seguir usa o IN
operador para consultar as trilhas 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;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
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;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Como você pode ver nas consultas, usar o IN
operador é muito mais curto.
Se você tiver uma consulta que usa muitos OR
operadores, considere usar o IN
operador para tornar a consulta mais legível.
IN
Operador SQLite com um exemplo de subconsulta
A consulta a seguir retorna uma lista de IDs de álbum do ID de artista 12:
SELECT albumid
FROM albums
WHERE artistid = 12;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Para obter as faixas que pertencem ao ID de 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
);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
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 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);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Neste tutorial, você aprendeu como usar o IN
operador SQLite para combinar um valor com uma lista de valores ou uma subconsulta.