Resumo : neste tutorial, você aprenderá como usar o LIKE
operador MySQL para consultar dados com base em um padrão especificado.
Introdução ao operador MySQL LIKE
O LIKE
operador é um operador lógico que testa se uma string contém um padrão especificado ou não.
Aqui está a sintaxe do LIKE
operador:
expression LIKE pattern ESCAPE escape_character
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Nesta sintaxe, se expression
corresponder a pattern
, o LIKE
operador retornará 1. Caso contrário, retornará 0.
O MySQL fornece dois caracteres curinga para a construção de padrões: Porcentagem %
e sublinhado _
.
- O curinga porcentagem (
%
) corresponde a qualquer sequência de zero ou mais caracteres. - O
_
curinga sublinhado ( ) corresponde a qualquer caractere único.
Por exemplo, s%
corresponde a qualquer string que comece com o caractere s, como sol e seis. O se_ corresponde a qualquer string começando com se
e é seguido por qualquer caractere como see
e sea
.
Quando o padrão contém o caractere curinga e você deseja tratá-lo como um caractere normal, você pode usar a ESCAPE
cláusula.
Normalmente, você usará o LIKE
operador na WHERE
cláusula da instrução SELECT
, DELETE
e UPDATE
.
Exemplos de operadores LIKE do MySQL
Vamos praticar com alguns exemplos de uso do LIKE
operador. Usaremos a seguinte employees
tabela do banco de dados de exemplo para a demonstração:
1) Usando o operador MySQL LIKE com exemplos de curinga de porcentagem (%)
Este exemplo usa o LIKE
operador para localizar funcionários cujos nomes começam com a letra a
:
SELECT
employeeNumber,
lastName,
firstName
FROM
employees
WHERE
firstName LIKE 'a%';
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Neste exemplo, o MySQL verifica toda a employees
tabela para encontrar funcionários cujos nomes começam com a letra a
e são seguidos por qualquer número de caracteres.
Este exemplo usa o LIKE
operador para localizar funcionários cujos sobrenomes terminam com a string literal, on
por exemplo, Patterson
, Thompson
:
SELECT
employeeNumber,
lastName,
firstName
FROM
employees
WHERE
lastName LIKE '%on';
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Para verificar se uma string contém uma substring, você pode usar o %
curinga porcentagem ( ) no início e no final da substring.
Por exemplo, a consulta a seguir usa o LIKE
operador para localizar todos os funcionários cujos sobrenomes contenham a substring on
:
SELECT
employeeNumber,
lastName,
firstName
FROM
employees
WHERE
lastname LIKE '%on%';
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
2) Usando o operador MySQL LIKE com _
exemplos de curinga sublinhado ()
Para localizar funcionários cujos nomes começam com a letra T
, terminam com a letra m
, e contêm qualquer caractere único entre, por exemplo, Tom
, Tim
, você usa o curinga sublinhado (_) para construir o padrão da seguinte forma:
SELECT
employeeNumber,
lastName,
firstName
FROM
employees
WHERE
firstname LIKE 'T_m';
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
3) Usando o exemplo do operador MySQL NOT LIKE
O MySQL permite combinar o NOT
operador com o LIKE
operador para encontrar uma string que não corresponda a um padrão específico.
Suponha que você queira pesquisar funcionários cujos sobrenomes não comecem com a letra B
, você pode usar o NOT LIKE
operador da seguinte forma:
SELECT
employeeNumber,
lastName,
firstName
FROM
employees
WHERE
lastName NOT LIKE 'B%';
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Observe que o padrão não diferencia maiúsculas de minúsculas. Portanto, os padrões b%
e B%
retornam o mesmo resultado.
Operador MySQL LIKE com a cláusula ESCAPE
Às vezes, o padrão pode conter caracteres curinga, por exemplo, 10%, _20, etc.
Nesse caso, você pode usar a ESCAPE
cláusula para especificar o caractere de escape para que o operador LIKE interprete o caractere curinga como um caractere literal.
Se você não especificar explicitamente o caractere de escape, o caractere de barra invertida ( \
) será o caractere de escape padrão.
Por exemplo, se quiser encontrar produtos cujos códigos de produto contenham a string _20
, você pode usar o padrão %\_20%
com o caractere de escape padrão:
SELECT
productCode,
productName
FROM
products
WHERE
productCode LIKE '%\_20%';
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Alternativamente, você pode especificar um caractere de escape diferente, por exemplo, $
usando a ESCAPE
cláusula:
SELECT
productCode,
productName
FROM
products
WHERE
productCode LIKE '%$_20%' ESCAPE '$';
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
O padrão %$_20%
corresponde a qualquer string que contenha a _20
string.
Resumo
- Use o
LIKE
operador para testar se um valor corresponde a um padrão. - O
%
curinga corresponde a zero ou mais caracteres. - O
_
curinga corresponde a um único caractere. - A cláusula Use
ESCAPE
especifica um caractere de escape diferente do caractere de escape padrão (\
). - Use o
NOT
operador para negar oLIKE
operador.