Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

Tildes/Acentos

Estas en el tema de Tildes/Acentos en el foro de PostgreSQL en Foros del Web. Buenas, Soy nuevo en el foro y he estado buscando si existe alguna forma de al realizar una consulta no distinga entre palabras con tildes ...
  #1 (permalink)  
Antiguo 30/10/2009, 03:30
 
Fecha de Ingreso: octubre-2009
Mensajes: 4
Antigüedad: 15 años
Puntos: 0
Tildes/Acentos

Buenas,

Soy nuevo en el foro y he estado buscando si existe alguna forma de al realizar una consulta no distinga entre palabras con tildes y sin tildes. Es decir, yo quiero todos los registros que contengan jose, independientemente si en la base de datos se está almacenando jose o josé.

Ejemplo: Mi tabla de usuarios tiene el siguiente registro

-------------------
| id | Nombre |
| --------------- |
| 1 | Martín |
-------------------

y la consulta lanzada es:

select * from nombre like '%Martín%'

Al lanzar la consulta no me devuelve ningún registro.


Alguien que haya tenido el mismo problema o sepa la solución me la indique.

A lo mejor la solución es utilizar expresiones regulares, pero no se como afectarían al rendimiento de la consulta.

Gracias.
  #2 (permalink)  
Antiguo 30/10/2009, 07:58
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Tildes/Acentos

pruebala así:

Código sql:
Ver original
  1. SELECT *FROM tabla
  2. WHERE translate(LOWER(nombre),'áéíóú','aeiou') LIKE LOWER('Martin');
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 30/10/2009, 11:03
 
Fecha de Ingreso: octubre-2009
Mensajes: 4
Antigüedad: 15 años
Puntos: 0
Respuesta: Tildes/Acentos

Muchas gracias, me ha servido
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:34.