Re: Problemas con tildes, eñes y mayusculas

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)

In response to

Browse pgsql-es-ayuda by date

  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