Como usar LIKE para pesquisar padrões no SQL?
O operador LIKE no SQL é utilizado para buscar registros que correspondam a padrões específicos dentro de colunas de texto. Ele permite encontrar palavras parciais e realizar buscas flexíveis utilizando curingas.
Usando % para buscar qualquer sequência de caracteres
O curinga %
substitui qualquer sequência de caracteres:
SELECT * FROM produtos WHERE nome LIKE '%smartphone%';
Isso retorna todos os produtos cujo nome contenha a palavra "smartphone" em qualquer posição.
Usando _ para substituir um único caractere
O curinga _
substitui exatamente um caractere:
SELECT * FROM clientes WHERE telefone LIKE '11_98765____';
Aqui, buscamos números de telefone que comecem com "11" e tenham um formato específico, onde _
representa qualquer número.
Buscando palavras que começam ou terminam com um padrão
- Para encontrar registros que começam com uma palavra:
SELECT * FROM clientes WHERE nome LIKE 'Carlos%';
- Para registros que terminam com uma palavra:
SELECT * FROM clientes WHERE nome LIKE '%Silva';
Tornando a busca insensível a maiúsculas e minúsculas
Alguns bancos de dados, como PostgreSQL, oferecem ILIKE
, que ignora a capitalização:
SELECT * FROM clientes WHERE nome ILIKE '%joão%';
Isso retornaria "João", "joão" ou "JOÃO" sem precisar ajustar a capitalização manualmente.
Cuidados ao usar LIKE
- LIKE pode ser lento em tabelas grandes, pois exige varredura completa dos registros.
- Prefira índices full-text search quando precisar de buscas eficientes em grandes volumes de dados.
- Use com moderação, principalmente se precisar realizar pesquisas em tempo real.
Quando usar LIKE no SQL e quando optar por outras soluções?
A pesquisa de padrões no SQL é essencial para encontrar informações flexíveis dentro de um banco de dados. O operador LIKE
é uma ferramenta poderosa, mas pode ter impacto na performance quando usado em tabelas grandes. Para sistemas de busca robustos, alternativas como índices FULLTEXT (no MySQL) ou TSVECTOR (no PostgreSQL) podem oferecer melhores resultados. Em aplicações web, onde os usuários fazem buscas frequentes, otimizar essas consultas é fundamental para manter o desempenho e evitar sobrecarga no banco de dados.
Algumas aplicações:
- Filtragem de clientes com base em nomes parciais
- Busca por produtos que contenham palavras-chave
- Verificação de padrões em números de telefone ou CEPs
- Pesquisa em sistemas de suporte para encontrar tickets específicos
- Filtragem de logs para identificar mensagens de erro
Dicas para quem está começando
- Use
%palavra%
para encontrar registros que contenham um termo - Use
_
para substituir apenas um caractere - Evite LIKE em tabelas muito grandes sem índices adequados
- Prefira
ILIKE
em PostgreSQL para buscas insensíveis a maiúsculas/minúsculas - Se precisar de buscas avançadas, pesquise sobre full-text search
Contribuições de Fernando Albuquerque