Resumo : neste tutorial, você aprenderá como usar IN
o operador MySQL para determinar se um valor especificado corresponde a qualquer valor em uma lista de valores.
Introdução ao operador MySQL IN
O IN
operador permite determinar se um valor corresponde a qualquer valor em uma lista de valores. Aqui está a sintaxe do IN
operador:
value IN (value1, value2, value3,...)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
O IN
operador retorna 1 (verdadeiro) se for value
igual a qualquer valor na lista ( value1
, value2
, value3
,…). Caso contrário, ele retorna 0.
Nesta sintaxe:
- Primeiro, especifique o valor a ser testado no lado esquerdo do
IN
operador. O valor pode ser uma coluna ou uma expressão. - Segundo, especifique uma lista de valores separados por vírgula para correspondência entre parênteses.
O IN
operador é funcionalmente equivalente a uma combinação de vários OR
operadores:
value = value1 OR value = value2 OR value = value3 OR ...
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
O exemplo a seguir retorna 1 porque 1 está na lista:
SELECT 1 IN (1,2,3);
+--------------+
| 1 IN (1,2,3) |
+--------------+
| 1 |
+--------------+
1 row in set (0.00 sec)
Linguagem de código: texto simples ( texto simples )
O exemplo a seguir retorna 0 porque 4 não está na lista:
SELECT 4 IN (1,2,3);
+--------------+
| 4 IN (1,2,3) |
+--------------+
| 0 |
+--------------+
1 row in set (0.00 sec)
Linguagem de código: texto simples ( texto simples )
Na prática, você usará o IN
operador para formar condições em uma WHERE
cláusula das instruções SELECT
, DELETE
e UPDATE
. Além disso, você usará o IN
operador em uma consulta que contenha uma subconsulta .
Operador MySQL IN e NULL
Geralmente, o IN
operador retorna NULL
em dois casos:
- O
value
lado esquerdo do operador é NULL. - O valor não é igual a nenhum valor na lista e um dos valores na lista é NULL.
O exemplo a seguir retorna NULL porque o valor do lado esquerdo do operador IN é NULL:
SELECT NULL IN (1,2,3);
Linguagem de código: PHP ( php )
+-----------------+
| NULL IN (1,2,3) |
+-----------------+
| NULL |
+-----------------+
1 row in set (0.00 sec)
Linguagem de código: texto simples ( texto simples )
O exemplo a seguir também retorna NULL porque 0 não é igual a nenhum valor na lista e a lista possui um NULL:
SELECT 0 IN (1 , 2, 3, NULL);
Linguagem de código: PHP ( php )
+-----------------------+
| 0 IN (1 , 2, 3, NULL) |
+-----------------------+
| NULL |
+-----------------------+
1 row in set (0.00 sec)
Linguagem de código: texto simples ( texto simples )
O exemplo a seguir também retorna NULL porque NULL não é igual a nenhum valor na lista e a lista possui um NULL. Observe que NULL não é igual a NULL.
SELECT NULL IN (1 , 2, 3, NULL);
Linguagem de código: PHP ( php )
Exemplos de operadores MySQL IN
Consulte a offices
tabela a seguir do banco de dados de exemplo :
O exemplo a seguir utiliza a IN
operadora para localizar os escritórios localizados nos EUA e na França:
SELECT
officeCode,
city,
phone,
country
FROM
offices
WHERE
country IN ('USA' , 'France');
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
+------------+---------------+-----------------+---------+
| officeCode | city | phone | country |
+------------+---------------+-----------------+---------+
| 1 | San Francisco | +1 650 219 4782 | USA |
| 2 | Boston | +1 215 837 0825 | USA |
| 3 | NYC | +1 212 555 3000 | USA |
| 4 | Paris | +33 14 723 4404 | France |
+------------+---------------+-----------------+---------+
4 rows in set (0.01 sec)
Linguagem de código: texto simples ( texto simples )
Você também pode obter o mesmo resultado com o OR
operador assim:
SELECT
officeCode,
city,
phone
FROM
offices
WHERE
country = 'USA' OR country = 'France';
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Caso a lista tenha muitos valores, é necessário construir uma instrução muito longa com vários OR
operadores. Conseqüentemente, o IN
operador permite encurtar a consulta e torná-la mais legível.
Resumo
- Use o
IN
operador para verificar se um valor está em um conjunto de valores. - Use o
IN
operador para formar uma condição para aWHERE
cláusula.