SQL: LIKE
O operador LIKE busca padrões de texto em uma coluna, de forma semelhante às expressões regulares disponíveis em linguagens de programação como o JavaScript e PHP.
O operador LIKE busca padrões de texto em uma coluna, de forma semelhante às expressões regulares disponíveis em linguagens de programação como o JavaScript e PHP.
Visão geral
A utilização de caracteres curinga é uma prática comum no ambiente de desenvolvimento, o que facilita bastante o filtro em determinados momentos. A utilização do like é muito vista na prática de autocomple de formulários HTML, onde um usuário inicia a digitação dos dados e logo a aplicação autocompleta.
Existem dois caracteres curingas que são utilizados em conjunto com o operador LIKE.
Para os exemplos a seguir, considere a estrutura de tabela abaixo, a tabela aluno (Tabela 1) que é responsável por armazenar as informações de todos os alunos da instituição.
id | nome | id_turma | |
1 | João da Silva | joao@yahoo.com.br | 1 |
3 | Bruna dos Santos | bruna@gmail.com | 2 |
4 | Pedro da Silva | pedro@gmail.com | 2 |
5 | João Nascimento | j.nascimento@outlook.com | 1 |
Sintaxe
SELECT
[ coluna1, coluna2, ... | * ]
FROM
[ tabela1, tabela2, ... ]
WHERE
[ tabela1.coluna1 LIKE [ sequência de caracteres ] ]
Na prática
Exemplo 1
O operador porcentagem (%) representa zero, um ou mais caracteres em um texto. Por exemplo, considere que precisamos buscar todos os alunos com sobrenome “da silva” - abaixo vamos entender como fazer este tipo de consulta:
SELECT
nome
FROM
aluno
WHERE
nome LIKE '%da Silva'
Na Tabela 2 podemos analisar o resultado da consulta usando o LIKE.
nome |
João da Silva |
Pedro da Silva |
Como podemos ver todos os nomes que combinavam com a expressão, ou seja, terminasse o texto com a palavra “da Silva” retornaram no resultado da consulta.
Exemplo 2
Podemos também utilizar o caractere porcentagem no final do texto da mesma forma que fizemos no início, permitindo realizar buscas em textos que sabemos parcialmente o início. No exemplo abaixo podemos ver como fazer este tipo de consulta:
SELECT
nome
FROM
aluno
WHERE
nome LIKE 'João%'
Nesta consulta temos como resultado os nomes de alunos que seja iniciado por “João”, independentemente do que esteja escrito em seguida. O resultado pode ser visto na Tabela 3.
nome |
João da Silva |
João Nascimnento |
Exemplo 3
Podemos também pesquisar por caracteres parciais ainda que estejam no meio do texto. Se analisarmos a Tabela 1 podemos perceber que alguns e-mails possuem o texto “gmail” no meio do conteúdo e para fazer este tipo de pesquisa podemos fazer como no exemplo abaixo:
SELECT
email
FROM
aluno
WHERE
email LIKE '%gmail%'
Na Tabela 4 podemos ver o resultado da consulta utilizando o LIKE e o caractere porcentagem (%) no início e no final de um texto.
bruna@gmail.com |
pedro@gmail.com |
A consulta retornou os e-mails que possuíam a palavra “gmail”, independentemente da posição. É importante lembrar que este tipo de consulta é importante para encontrar conteúdos parciais em textos, como na situação exemplo anterior.
Exemplo 4
Diferentemente do caractere porcentagem (%), que busca independentemente da quantidade de caracteres, temos o sub traço (_) que considera apenas um caractere. Para pesquisar, por exemplo, todos os usuários da tabela aluno (Tabela 1) podemos utilizar a consulta abaixo:
SELECT
nome
FROM
aluno
WHERE
nome LIKE '__ão%'
Apesar da consulta utilizar o caractere porcentagem (%) seu uso foi apenas para que a nossa consulta ficasse mais simples, mostrando que é possível combinar diferentes caracteres curingas na mesma consulta, como no resultado da Tabela 5.
João da Silva |
João Nascimento |
Da mesma forma que utilizamos a porcentagem em qualquer posição da sentença, é possível utilizar o sub traço inserindo-o em qualquer posição do texto. Lembre-se que ele equivale a apenas um caractere na busca.
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo