Resumo : neste tutorial, você aprenderá como usar o BETWEEN
operador MySQL para determinar se um valor está em um intervalo de valores.
Introdução ao MySQL ENTRE Operador
O BETWEEN
operador é um operador lógico que especifica se um valor está ou não em um intervalo. Aqui está a sintaxe do BETWEEN
operador:
value BETWEEN low AND high;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
O BETWEEN
operador retorna 1 se:
value >= low AND value <= high
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Caso contrário, ele retorna 0.
Se value
, low
, ou high
for NULL
, o BETWEEN
operador retornará NULL
.
Por exemplo, a instrução a seguir retorna 1 porque 15 está entre 10 e 20:
SELECT 15 BETWEEN 10 AND 20;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
O exemplo a seguir retorna 0 porque 15 não está entre 20 e 30:
SELECT 15 BETWEEN 20 AND 30;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Observe que o MySQL trata 1 como verdadeiro e 0 como falso.
NÃO ENTRE
Para negar o BETWEEN
operador, você usa o NOT
operador:
value NOT BETWEEN low AND high
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
O NOT BETWEEN
operador retorna 1 se:
value < low OR value > high
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Caso contrário, ele retorna 0.
Por exemplo, a seguinte afirmação retorna 0 porque 15 não está entre 10 e 20 não é verdadeira:
SELECT 15 NOT BETWEEN 10 AND 20;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Na prática, você usará o BETWEEN
operador na WHERE
cláusula das instruções SELECT
, UPDATE
e DELETE
.
Exemplos de operadores MySQL ENTRE
Vamos praticar com alguns exemplos de uso do BETWEEN
operador.
1) Usando MySQL ENTRE com números
Consulte a products
tabela a seguir no banco de dados de exemplo :
O exemplo a seguir usa o BETWEEN
operador para encontrar produtos cujos preços de compra estão entre 90
e 100
:
SELECT
productCode,
productName,
buyPrice
FROM
products
WHERE
buyPrice BETWEEN 90 AND 100;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Esta consulta usa os operadores maior ou igual (>=
) e menor ou igual a ( <=
) em vez do BETWEEN
operador para obter o mesmo resultado:
SELECT
productCode,
productName,
buyPrice
FROM
products
WHERE
buyPrice >= 90 AND buyPrice <= 100;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Para encontrar os produtos cujos preços de compra não estão entre US$ 20 e US$ 100, você usa o NOT BETWEEN
operador da seguinte forma:
SELECT
productCode,
productName,
buyPrice
FROM
products
WHERE
buyPrice NOT BETWEEN 20 AND 100;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Você pode reescrever a consulta acima usando menor que ( <
), maior que ( >
) e o operador lógico ( AND
) assim:
SELECT
productCode,
productName,
buyPrice
FROM
products
WHERE
buyPrice < 20 OR buyPrice > 100;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
2) Usando o operador MySQL BETWEEN com exemplo de datas
Veja a seguinte tabela de pedidos:
Para verificar se um valor está entre um intervalo de datas, você deve converter explicitamente o valor para o tipo DATE .
Por exemplo, a instrução a seguir retorna os pedidos com as datas exigidas entre 01/01/2003 e 31/01/2003:
SELECT
orderNumber,
requiredDate,
status
FROM
orders
WHERE
requireddate BETWEEN
CAST('2003-01-01' AS DATE) AND
CAST('2003-01-31' AS DATE);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Neste exemplo, usamos o CAST()
para converter a string literal '2003-01-01'
em um DATE
valor:
CAST('2003-01-01' AS DATE)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Resumo
- Use o operador MySQL
BETWEEN
para testar se um valor está dentro de um intervalo de valores.