Aprenda inglês em casa
Baixe gratuitamente as duas primeiras aulas
English for Reading and Listening
Receba por email, diariamente, mensagens contendo materiais para
leitura e audição, incluindo arquivos no formato MP3 gravados por
falantes nativos.
Saiba mais
e faça
sua inscrição
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
Referências Adicionais
Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.
Avalie esta dica
- Currently 3.03/5
- 1
- 2
- 3
- 4
- 5
Avaliação:
3.0 /5
(579 votos)
Opinião dos Leitores
Alex
06 Jul 2007, 17:28
Nao funcionou
Walter Cruz
02 Jan 2007, 14:27
Oi Fernando
Eu escrevi essa dica há algum tempo atrás. Nem sabia que tinha sido publicada :) . Quando ao lance dos indíces, você está corretíssimo!
Mão na Massa NAGIOS
Aumente a disponibilidade dos serviços de rede de sua empresa
9 de Agosto, em São Paulo
Saiba mais
Biblioteca
Hardware PC: Guia de Aprendizagem Rápida
Por Carlos E. Morimoto
Sistemas de Banco de Dados
Por Ramez E. Elmasri e Shamkant Navathe
Redes de Computadores: Curso Completo
Por Gabriel Torres
UML: uma Abordagem Prática
Por Gilleanes T. A. Guedes
MySQL - Guia do Programador
Por André Milani
Marley e Eu: a Vida e o Amor ao Lado do Pior Cão do Mundo
Por John Grogan
Redes de Computadores
Por Andrew S. Tanembaum
SQL: Curso Prático
Por Celso H. Poderoso de Oliveira
Google Hacking
Por JOHNNY LONG
Criptografia em Software e Hardware
Por Edward David Moreno, Fabio Dacencio Pereira e Rodolfo Barros Chiaramonte
Use a Cabeça!: JSP & Servlets
Por Brian Bashan, Kathy Sierra, Bert Bates
Harry Potter e as Relíquias da Morte
Por J.K. Rowling
Manual Completo do Linux: Guia do Administrador
Por Evi Nemeth, Trent R. Hein, Garth Snyder
Elite da Tropa
Por Luis Eduardo Soares, Andre Batista e Rodrigo Pimentel
Marley e Eu: a Vida e o Amor ao Lado do Pior Cão do Mundo
Por John Grogan
UML: Guia do Usuário
Por Grady Booch, James Rumbaugh e Ivar Jacobson
Deus, um delírio
Por Richard Dawkins
OpenGL: uma Abordagem Prática e Objetiva
Por Marcelo Cohen, Isabel Harb Manssour
Engenharia de Software
Por Roger S. Pressman
Upgrade e Manutenção de Hardware
Por Carlos E. Morimoto