MySQL COMO

Resumo : neste tutorial, você aprenderá como usar o LIKEoperador MySQL para consultar dados com base em um padrão especificado.

Introdução ao operador MySQL LIKE

O LIKEoperador é um operador lógico que testa se uma string contém um padrão especificado ou não.

Aqui está a sintaxe do LIKEoperador:

expression LIKE pattern ESCAPE escape_characterLinguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Nesta sintaxe, se expressioncorresponder a pattern, o LIKEoperador 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   see é seguido por qualquer caractere como seee sea.

Quando o padrão contém o caractere curinga e você deseja tratá-lo como um caractere normal, você pode usar a ESCAPEcláusula.

Normalmente, você usará o LIKEoperador na WHERE cláusula da instrução SELECT, DELETEe UPDATE.

Exemplos de operadores LIKE do MySQL

Vamos praticar com alguns exemplos de uso do LIKEoperador. Usaremos a seguinte employeestabela 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 )

Experimente

Exemplo de operador MySQL LIKE
Neste exemplo, o MySQL verifica toda a employeestabela para encontrar funcionários cujos nomes começam com a letra ae são seguidos por qualquer número de caracteres.

Este exemplo usa o LIKEoperador para localizar funcionários cujos sobrenomes terminam com a string literal, onpor exemplo, Patterson, Thompson:

SELECT 
    employeeNumber, 
    lastName, 
    firstName
FROM
    employees
WHERE
    lastName LIKE '%on';Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Experimente

Exemplo de padrão de sobrenome do operador MySQL LIKE

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 LIKEoperador 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 )

Experimente

Operador MySQL LIKE com padrões de prefixo e sufixo

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 )

Experimente

mysql-like-with-_-pattern

3) Usando o exemplo do operador MySQL NOT LIKE

O MySQL permite combinar o NOToperador com o LIKEoperador 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 LIKEoperador da seguinte forma:

SELECT 
    employeeNumber, 
    lastName, 
    firstName
FROM
    employees
WHERE
    lastName NOT LIKE 'B%';Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Experimente

MySQL NÃO GOSTA de exemplo

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 ESCAPEclá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 )

Experimente

Alternativamente, você pode especificar um caractere de escape diferente, por exemplo, $usando a ESCAPEcláusula:

SELECT 
    productCode, 
    productName
FROM
    products
WHERE
    productCode LIKE '%$_20%' ESCAPE '$';Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Experimente

Exemplo MySQL LIKE ESCAPE

O padrão %$_20%corresponde a qualquer string que contenha a _20string.

Resumo

  • Use o LIKEoperador 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 ESCAPEespecifica um caractere de escape diferente do caractere de escape padrão ( \).
  • Use o NOToperador para negar o LIKEoperador.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *