From: | Calabaza <calalinux(at)gmail(dot)com> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Problemas con acentos |
Date: | 2009-02-26 10:57:28 |
Message-ID: | 958993320902260257j7b60577bub352d9827dd62fa4@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
2009/2/26 Gabriel Ferro <gabrielrferro(at)yahoo(dot)com(dot)ar>:
>
>
>
>
>
> ----- Mensaje original ----
>> De: Calabaza <calalinux(at)gmail(dot)com>
>> Para: pgsql-es-ayuda(at)postgresql(dot)org
>> Enviado: jueves 26 de febrero de 2009, 7:43:03
>> Asunto: Re: [pgsql-es-ayuda] Problemas con acentos
>>
>> 2009/2/26 Rafa Comino :
>> > Hola a todos, tengo un problema con mi base de datos postgresql que no se
>> > como resolver
>> > querría consultar en la base de datos pero que no fuera sensible a
>> > mayúsculas y acentos
>> > La única forma que se como hacerlo es un ínidce fullext con un tsvector.
>> > Hay alguna manera en que los LIKE no distinguieran entre palabras con
>> > acentos y sin acentos, vaya que el resultado de "campo LIKE '%iglú%'" fuera
>> > el mismo que el de "campo LIKE '%iglu%'"
>> > Saludos y gracias
>> >
>> > --
>> > Rafael Comino Mateos
>> > www.toreria.es
>> > www.trevenque.es
>> >
>>
>> SELECT
>> upper(trim(translate('iglü','áéíóúÁÉÍÓÚäëïöüÄËÏÖÜàèìòù','aeiouAEIOUaeiouAEIOUaeiou')))
>> as tu_campo
>>
>> Este select lo use para migrar datos puede servirte, pero no se como
>> ha de impactar en el rendimiento.
>>
>> Tu select quedaría algo así:
>>
>> SELECT
>> upper(trim(translate('tu_campo','áéíóúÁÉÍÓÚäëïöüÄËÏÖÜàèìòù','aeiouAEIOUaeiouAEIOUaeiou')))
>> as tu_campo
>> from tu_tabla
>> where
>> upper(trim(translate('tu_campo','áéíóúÁÉÍÓÚäëïöüÄËÏÖÜàèìòù','aeiouAEIOUaeiouAEIOUaeiou')))
>> like '%iglú%'
>>
>> Un abrazo
>> --
>> §~^Calabaza^~§ from Villa Elisa, Paraguay
>> --
>
>
> por poquito que se, interpreto un error en el like
> no deberia buscar con acentos, es decir tambien deberia hacer
> un upper trim translate de "iglú" ya que sino nunca encontraria nada.
> aunque recomendaria evaluar sino conviene hacer un update
> de los campos sacando los acentos ya que creo que el rendimiento
> puede caer bastante
Tienes toda la razón, jejeje, valga la aclaración:
SELECT
upper(trim(translate('tu_campo','áéíóúÁÉÍÓÚäëïöüÄËÏÖÜàèìòù','aeiouAEIOUaeiouAEIOUaeiou')))
as tu_campo
from tu_tabla
where
upper(trim(translate('tu_campo','áéíóúÁÉÍÓÚäëïöüÄËÏÖÜàèìòù','aeiouAEIOUaeiouAEIOUaeiou')))
like upper(trim(translate('%iglú%','áéíóúÁÉÍÓÚäëïöüÄËÏÖÜàèìòù','aeiouAEIOUaeiouAEIOUaeiou')))
Voto al update de los datos con el translate... :)
Otro abrazo.
--
§~^Calabaza^~§ from Villa Elisa, Paraguay
From | Date | Subject | |
---|---|---|---|
Next Message | José Fermín Francisco Ferreras | 2009-02-26 12:19:07 | RE: Problemas con acentos |
Previous Message | Gabriel Ferro | 2009-02-26 10:51:57 | Re: Problemas con acentos |