Como buscar registros que começam ou terminam com uma palavra específica no SQL?
No SQL, podemos utilizar o operador LIKE para encontrar registros que começam ou terminam com uma palavra específica.
Buscando registros que começam com uma palavra
Para encontrar registros em que uma coluna começa com um determinado termo, usamos LIKE 'palavra%'
:
SELECT * FROM clientes WHERE nome LIKE 'Ana%';
Isso retorna todos os clientes cujo nome começa com "Ana", como Ana Souza e Ana Pereira.
Buscando registros que terminam com uma palavra
Para registros em que uma coluna termina com um determinado termo, usamos LIKE '%palavra'
:
SELECT * FROM clientes WHERE nome LIKE '%Silva';
Aqui, são retornados clientes cujos nomes terminam com "Silva", como Carlos Silva e Mariana Silva.
Tornando a busca case-insensitive
O comportamento do LIKE
pode diferir dependendo do banco de dados. No PostgreSQL, podemos usar ILIKE
para ignorar diferenças entre maiúsculas e minúsculas:
SELECT * FROM clientes WHERE nome ILIKE 'ana%';
Isso retorna nomes como "Ana", "ANA" ou "ana" sem precisar padronizar a capitalização.
Melhorando a busca com expressões regulares
Em bancos como PostgreSQL, podemos usar expressões regulares para buscar registros que comecem ou terminem com um termo:
SELECT * FROM clientes WHERE nome ~* '^Ana';
O ^
indica que a palavra deve estar no início do campo.
Como otimizar buscas por palavras no SQL?
Buscar registros que começam ou terminam com uma palavra específica é uma funcionalidade essencial em sistemas de busca. Em e-commerces, redes sociais e bancos de dados corporativos, esse tipo de pesquisa permite filtrar rapidamente grandes volumes de informação. No entanto, o uso excessivo de LIKE
pode afetar o desempenho de consultas em tabelas muito grandes. Para otimizar essas buscas, é recomendável utilizar índices ou mecanismos de pesquisa especializados, como full-text search, que podem melhorar significativamente a velocidade das consultas.
Algumas aplicações:
- Filtragem de clientes por sobrenome
- Busca de produtos que comecem com uma determinada marca
- Pesquisa de nomes de arquivos que terminam com uma extensão específica
- Localização de registros baseados em prefixos de texto
- Implementação de sistemas de busca avançada
Dicas para quem está começando
- Use
LIKE 'palavra%'
para buscar registros que começam com uma palavra - Use
LIKE '%palavra'
para encontrar registros que terminam com uma palavra - Prefira
ILIKE
no PostgreSQL para buscas sem diferenciação de maiúsculas e minúsculas - Evite usar
LIKE
em colunas não indexadas para não impactar a performance - Para buscas mais eficientes, considere usar índices full-text search
Contribuições de Carla Nunes