From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
To: | Gregorio Diaz <gregorio_diaz(at)yahoo(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Problemas con tildes, eñes y mayusculas |
Date: | 2005-09-01 16:53:16 |
Message-ID: | 20050901165316.GA30165@surnet.cl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
On Thu, Sep 01, 2005 at 11:22:55AM -0500, Gregorio Diaz wrote:
> Leyendo averigue que se puede solventar el problema de las mayusculas
> así:
>
> SELECT * FROM ciudades WHERE LOWER(ciudad) = 'san josé';
>
> pero aquí se pierde la efectividad de los indices, ya que tiene que
> calcular LOWER(ciudad) para cada registro.
Has pensado en crear un indice en LOWER(ciudad)?
> Mi pregunta es: existe alguna forma que postgres ignore las mayusculas
> y las minusculas en las búsquedas así como las tildes y tome en cuenta
> como iguales las vocales con tilde y sin tilde así como la ñ y la n?
Usa to_ascii() y lower() simultaneamente. Es decir, crea el indice asi:
create index foo on table lower(to_ascii(ciudad));
luego haces busquedas asi:
select ... where lower(to_ascii(ciudad)) = lower(to_ascii('San José'))
--
Alvaro Herrera -- Valdivia, Chile Architect, www.EnterpriseDB.com
"At least to kernel hackers, who really are human, despite occasional
rumors to the contrary" (LWN.net)
From | Date | Subject | |
---|---|---|---|
Next Message | Espartano | 2005-09-01 17:08:33 | Re: Cargar funcion plpgsql en Visual Basic |
Previous Message | Gregorio Diaz | 2005-09-01 16:22:55 | Problemas con tildes, eñes y mayusculas |