Resumo : neste tutorial, você aprenderá como o AND
operador MySQL combina múltiplas expressões booleanas para filtrar dados.
Introdução ao operador MySQL AND
O MySQL não possui um tipo booleano integrado. Em vez disso, ele usa o número zero como FALSO e valores diferentes de zero como VERDADEIRO.
O AND
operador é um operador lógico que combina duas ou mais expressões booleanas e retorna 1, 0 ou NULL:
A AND B
Nesta expressão, A e B são chamados de operandos. Eles podem ser valores literais ou expressões.
O operador lógico AND retorna 1 se A e B forem diferentes de zero e não NULL. Retorna 0 se um dos operandos for zero; caso contrário, retornará NULL.
O operador lógico AND retorna 1 se A e B forem diferentes de zero e NOT NULL. Por exemplo:
SELECT 1 AND 1;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
+---------+
| 1 AND 1 |
+---------+
| 1 |
+---------+
1 row in set (0.00 sec)
Linguagem de código: texto simples ( texto simples )
O operador lógico AND retorna 0 se A ou B for zero ou se A e B forem zero:
SELECT 1 AND 0, 0 AND 1, 0 AND 0, 0 AND NULL;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
+---------+---------+---------+------------+
| 1 AND 0 | 0 AND 1 | 0 AND 0 | 0 AND NULL |
+---------+---------+---------+------------+
| 0 | 0 | 0 | 0 |
+---------+---------+---------+------------+
1 row in set (0.00 sec)
Linguagem de código: texto simples ( texto simples )
O operador lógico AND retorna NULL se um dos operandos for diferente de zero ou se ambos os operandos forem NULL.
SELECT 1 AND NULL, NULL AND NULL;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
+------------+---------------+
| 1 AND NULL | NULL AND NULL |
+------------+---------------+
| NULL | NULL |
+------------+---------------+
1 row in set (0.00 sec)
Linguagem de código: texto simples ( texto simples )
A tabela a seguir ilustra os resultados do AND
operador ao combinar verdadeiro, falso e nulo.
verdadeiro | FALSO | NULO | |
---|---|---|---|
verdadeiro | verdadeiro | FALSO | NULO |
FALSO | FALSO | FALSO | FALSO |
NULO | NULO | FALSO | NULO |
Na prática, você usará o AND
operador na WHERE
cláusula das instruções SELECT
, UPDATE
, DELETE
para formar uma condição. Além disso, você pode usar o AND
operador nas condições das cláusulas INNER JOIN
e LEFT JOIN
.
Ao avaliar uma expressão que contém o AND
operador, o MySQL para de avaliar as partes restantes da expressão assim que pode determinar o resultado.
Isso é chamado de avaliação de curto-circuito. Em outras palavras, o AND
operador está em curto-circuito. Por exemplo:
SELECT 1 = 0 AND 1 / 0 ;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
+-----------------+
| 1 = 0 AND 1 / 0 |
+-----------------+
| 0 |
+-----------------+
1 row in set (0.01 sec)
Linguagem de código: texto simples ( texto simples )
Neste exemplo, o MySQL avalia apenas a primeira parte 1 = 0
da expressão 1 = 0 AND 1 / 0
.
Como a expressão 1 = 0
retorna 0, o MySQL pode determinar o resultado de toda a expressão, que é 0.
Portanto, o MySQL não precisa avaliar a parte restante da expressão, que é 1/0
; emitiria um erro de divisão por zero.
Exemplos de operadores MySQL AND
Vamos usar a customers
tabela do banco de dados de exemplo para a demonstração.
A instrução a seguir usa a AND
operadora para encontrar clientes localizados na Califórnia (CA), EUA:
SELECT
customername,
country,
state
FROM
customers
WHERE
country = 'USA' AND
state = 'CA';
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
+------------------------------+---------+-------+
| customername | country | state |
+------------------------------+---------+-------+
| Mini Gifts Distributors Ltd. | USA | CA |
| Mini Wheels Co. | USA | CA |
| Technics Stores Inc. | USA | CA |
| Toys4GrownUps.com | USA | CA |
| Boards & Toys Co. | USA | CA |
| Collectable Mini Designs Co. | USA | CA |
| Corporate Gift Ideas Co. | USA | CA |
| Men 'R' US Retailers, Ltd. | USA | CA |
| The Sharp Gifts Warehouse | USA | CA |
| West Coast Collectables Co. | USA | CA |
| Signal Collectibles Ltd. | USA | CA |
+------------------------------+---------+-------+
11 rows in set (0.00 sec)
Linguagem de código: texto simples ( texto simples )
Ao usar o AND
operador, você pode combinar mais de duas expressões booleanas. Por exemplo, a consulta a seguir retorna os clientes localizados na Califórnia, EUA, e com limite de crédito superior a 100 mil.
SELECT
customername,
country,
state,
creditlimit
FROM
customers
WHERE
country = 'USA' AND
state = 'CA' AND
creditlimit > 100000;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
+------------------------------+---------+-------+-------------+
| customername | country | state | creditlimit |
+------------------------------+---------+-------+-------------+
| Mini Gifts Distributors Ltd. | USA | CA | 210500.00 |
| Collectable Mini Designs Co. | USA | CA | 105000.00 |
| Corporate Gift Ideas Co. | USA | CA | 105000.00 |
+------------------------------+---------+-------+-------------+
3 rows in set (0.00 sec)
Linguagem de código: texto simples ( texto simples )
Resumo
- Use o
AND
operador para combinar duas expressões booleanas. OAND
operador retorna verdadeiro quando ambas as expressões são verdadeiras; caso contrário, retornará falso. - Use o
AND
operador para formar condições naWHERE
cláusula daSELECT
instrução.