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,