2009/2/26 Gabriel Ferro <gabrielrfe...@yahoo.com.ar>: > > > > > > ----- Mensaje original ---- >> De: Calabaza <calali...@gmail.com> >> Para: pgsql-es-ayuda@postgresql.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 -- TIP 7: no olvides aumentar la configuración del "free space map"