Como buscar registros que contenham uma palavra específica no SQL?

O SQL permite buscar registros que contenham uma palavra específica em uma coluna utilizando o operador LIKE e expressões regulares.

Como buscar registros que contenham uma palavra específica no SQL?

Para localizar registros que contenham uma palavra dentro de uma coluna, utilizamos o operador LIKE com wildcards (%).

Exemplo básico de busca por palavra

Se quisermos encontrar clientes cujo nome contenha a palavra "Silva":

SELECT * FROM clientes WHERE nome LIKE '%Silva%';

Isso retorna todos os registros onde a coluna nome contém "Silva" em qualquer posição.

Buscando palavras no início ou fim

Podemos adaptar a consulta para encontrar registros onde a palavra está no início ou no final do valor:

  • Para nomes que começam com "Ana":
    SELECT * FROM clientes WHERE nome LIKE 'Ana%';
  • Para nomes que terminam com "Souza":
    SELECT * FROM clientes WHERE nome LIKE '%Souza';

Ignorando diferenças entre maiúsculas e minúsculas

O comportamento do LIKE pode variar dependendo do banco de dados. No PostgreSQL, podemos usar ILIKE para buscas case-insensitive:

SELECT * FROM clientes WHERE nome ILIKE '%silva%';

Isso busca registros contendo "Silva", independentemente de estarem em maiúsculas ou minúsculas.

Melhorando a busca com expressões regulares

Bancos como PostgreSQL permitem buscas mais avançadas usando expressões regulares:

SELECT * FROM clientes WHERE nome ~* 'silva';

Aqui, ~* significa busca sem diferenciar maiúsculas e minúsculas.

A busca por palavras específicas em registros do banco de dados é uma funcionalidade essencial para sistemas que lidam com grande volume de informações. Em e-commerces, redes sociais e CRMs, encontrar registros de forma eficiente pode impactar diretamente a experiência do usuário. O operador LIKE é uma solução prática, mas pode ser lento em tabelas grandes. Nesses casos, o uso de índices full-text search ou mecanismos como MATCH() no MySQL pode tornar a busca mais eficiente. Escolher a abordagem correta depende da necessidade do projeto e da performance desejada.

Algumas aplicações:

  • Busca de produtos por nome em e-commerces
  • Filtragem de usuários em redes sociais
  • Pesquisa de palavras-chave em artigos e publicações
  • Recuperação de registros baseados em descrições ou observações
  • Implementação de sistemas de pesquisa interna

Dicas para quem está começando

  • Use %palavra% para encontrar um termo em qualquer posição
  • Se precisar de buscas case-insensitive, utilize ILIKE no PostgreSQL
  • Evite usar LIKE em colunas muito grandes sem índices otimizados
  • Para buscas mais rápidas, considere índices full-text search
  • Se estiver usando MySQL, aprenda sobre MATCH() e AGAINST() para pesquisas avançadas

Contribuições de Rodrigo Martins

Compartilhe este tutorial: Como buscar registros que contenham uma palavra específica no SQL?

Compartilhe este tutorial

Continue aprendendo:

Como filtrar registros distintos no SQL com DISTINCT?

O DISTINCT no SQL remove duplicatas e retorna apenas valores únicos em uma consulta, garantindo uma visualização mais organizada dos dados.

Tutorial anterior

Como buscar registros que começam ou terminam com uma palavra específica?

O operador LIKE no SQL permite encontrar registros que comecem ou terminem com uma palavra específica, utilizando os curingas %.

Próximo tutorial