Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: Segurança Linux ·  UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Você está aqui: Home  → Arquivo Dicas-L

 

Zura! - Busque. Compare. Compre.

Outras ofertas

Notebook

Monitor

Impressora

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

Consultas case-insensitive no PostgreSQL e no MySQL

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_ci

Veja a relação completa dos artigos de Walter Rodrigo de Sá Cruz

Stumble Upon Digg This Del.icio.us Twitter Recomendar este artigo a um amigo Entre em contato Formato PDF
Newsfeed RSS
Formato para impressão
StumbleUpon Digg Del.icio.us Twitter Recomendar Contato PDF RSS Imprimir

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 3.01/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.0 /5 (1244 votos)

Opinião dos Leitores

Eduardo
15 Jul 2010, 09:35
A solução para o PostgreSQL não funcionou:


ERRO: conversão de codificação de UTF8 para ASCII não é suportada
SQL state: 0A000
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script
Twitter, Chiclete & Camisinha


Encontre imóveis, apartamentos e casas a venda no Imobilien
Saiba mais

Grupo MBS