Busquedas sin acentos en postgres

Gene muy rápidamente les voy a decir como solucioné este tema, el problema es que quiero “linkear” por nombre pero en distintas tablas difieren los acentos. Entonces como indican en este post, creamos una función:

01CREATE OR REPLACE FUNCTION <strong>unaccent_string</strong>(text)
02RETURNS text
03IMMUTABLE
04STRICT
05LANGUAGE SQL
06AS $$
07SELECT translate(
08    $1,
09    'áãäåāăąÁÂÃÄÅĀĂĄèééêëēĕėęěĒĔĖĘĚìíîïìĩīĭÌÍÎÏÌĨĪĬóôõöōŏőÒÓÔÕÖŌŎŐùúûüũūŭůÙÚÛÜŨŪŬŮ',
10    'aaaaaaaaaaaaaaaeeeeeeeeeeeeeeeiiiiiiiiiiiiiiiiooooooooooooooouuuuuuuuuuuuuuuu'
11);
12$$;

Me gustó la escrita en sql porque su compatibilidad y sencilles sobre todo, ahora solo tenemos que hacer algo como:

update regiones set the_geom = (select the_geom from barrios where unaccent_string(barrios.nombre) = unaccent_string(regiones.nombre)) where idtiporegiones = 11;

Y con eso debería andar. Espero les sirva.

Tags: , , , , ,

One Response to “Busquedas sin acentos en postgres”

  1. Carlos Salinas says:

    Gracias!, funciona perfecto.