Resumo : neste tutorial, você aprenderá como usar o NOT IN
operador MySQL para verificar se um valor não está em uma lista de valores.
Introdução ao operador MySQL NOT IN
O NOT
operador nega o IN
operador:
value NOT IN (value1, value2, value2)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
O NOT IN
operador retorna um se o valor não for igual a nenhum valor na lista. Caso contrário, ele retorna 0.
O exemplo a seguir usa o NOT IN
operador para verificar se o número 1 é NOT IN
a lista (1,2,3):
SELECT 1 NOT IN (1,2,3);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Saída:
+------------------+
| 1 NOT IN (1,2,3) |
+------------------+
| 0 |
+------------------+
1 row in set (0.00 sec)
Linguagem de código: texto simples ( texto simples )
Ele retorna 0 (falso) porque 1 é NOT IN
a lista false
.
O exemplo a seguir usa o NOT IN
operador para verificar se 0 é NOT IN
a lista (1,2,3):
SELECT 0 NOT IN (1,2,3);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Saída:
+------------------+
| 0 NOT IN (1,2,3) |
+------------------+
| 1 |
+------------------+
1 row in set (0.00 sec)
Linguagem de código: texto simples ( texto simples )
O NOT IN
operador retornará NULL se o valor no lado esquerdo do IN
operador for NULL. Por exemplo:
SELECT NULL NOT IN (1,2,3);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Saída:
+---------------------+
| NULL NOT IN (1,2,3) |
+---------------------+
| NULL |
+---------------------+
1 row in set (0.00 sec)
Linguagem de código: texto simples ( texto simples )
Tecnicamente, o NOT IN
operador é equivalente ao seguinte:
NOT (value = value1 OR value = value2 OR value = valu3)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Ou:
value <> value1 AND value <> value2 AND value <> value3
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Exemplo de operador MySQL NOT IN
Usaremos a offices
tabela do banco de dados de exemplo para ilustrar o NOT IN
operador:
O exemplo a seguir usa o NOT IN
operador para localizar os escritórios que não estão localizados em France
e no USA
:
SELECT
officeCode,
city,
phone
FROM
offices
WHERE
country NOT IN ('USA' , 'France')
ORDER BY
city;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Saída:
+------------+--------+------------------+
| officeCode | city | phone |
+------------+--------+------------------+
| 7 | London | +44 20 7877 2041 |
| 6 | Sydney | +61 2 9264 2451 |
| 5 | Tokyo | +81 33 224 5000 |
+------------+--------+------------------+
3 rows in set (0.02 sec)
Linguagem de código: texto simples ( texto simples )
Resumo
- Use o MySQL
NOT IN
para verificar se um valor não corresponde a nenhum valor de uma lista.