PostgreSQL: Operador iLike e busca case sensitive

Leitores!

A partir desta semana também irei abordar alguns temas sobre o PostgreSQL, pra quem não sabe ele é um dos SGBDs mais robustos do mercado e totalmente FREE!

Aqui onde eu trabalho nós estamos utilizando ele, sem nenhum problema, e de fato eu posso afirmar que é um banco muito bom.

Mas dando atenção ao tema principal do post, muitas vezes quando vamos implementar algum sistema de busca utilizamos largamente o operador LIKE do SQL, veja o exemplo:

SELECT nome FROM cidades WHERE nome LIKE '%ribeirão%'

O “problema” é que o PostgreSQL é case sensitive, ou seja, ele diferencia letras maiúsculas de minúsculas, então eu já vi desenvolvedores que faziam o seguinte:

1) Ou gravavam tudo em upper-case no banco de dados (tudo escrito em maiúscula)

2) Ou usaram a função UPPER que converte as String para maiúsculo, e assim realizar a compração

3) Ou faziam os dois hehe

Bem, minha simples sugestão para você, que está desenvolvendo algum aplicativo com o PostgreSQL é: use o operador ILIKE, repare que ele tem um “i”, que quer dizer que ele é case-insensitive, ou seja, tanto faz como for a entrada no sistema, tanto faz como estiver gravado, ele irá ler: “TESTE” como se fosse “teste”.

A implementação é identica ao do LIKE comum, veja:

SELECT nome FROM cidades WHERE nome iLIKE '%ribeirão%'

Assim seu código fica mais fácil, mais leve e mais bonito =)

Referências:

Abraços,

Tiago.

Add a Comment

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *