De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Walter Rodrigo de Sá Cruz
Data de Publicação: 29 de Dezembro de 2006
Uma necessidade comum a desenvolvedores é fazer suas buscas no bancos de dados insensível a caso e insensível a acentos.
No Postgres, uma das formas de fazer uma consulta desse tipo é a seguinte:
SELECT nomemunic FROM tab_municipios WHERE lower(to_ascii(nomemunic)) like lower(to_ascii('%Paulo%'))
Que buscará todos os nomes de município que tenham a palavra Paulo neles.
Observe que poderíamos fazer até uma salada de acentos e maíusculas - o resultado seria o mesmo.
SELECT nomemunic FROM tab_municipios WHERE lower(to_ascii(nomemunic)) like lower(to_ascii('%PáuLô%'))
No MySQL, até a versão 4.0, as consultas eram por padrão case-insensitive e accent-insensitive. Isso mudou, porém, a partir da versão 4.1, que introduziu um suporte melhorado a collations e charsets.
A partir dessa versão, a sintaxe para uma consulta que ignora acentos e o caso seria a seguinte:
SELECT * FROM `tab_municipios` WHERE `NomeMunic` = _utf8 'SAO PAULO' COLLATE utf8_unicode_ciError: No site found with the domain 's2.dicas-l.com.br' (Learn more)