Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/04/2012, 02:58
anhellido
 
Fecha de Ingreso: julio-2008
Ubicación: España
Mensajes: 29
Antigüedad: 15 años, 10 meses
Puntos: 0
Pregunta REGEXP y acentos

Hola, tengo un problema con las expresiones regulares contra MySQL.

Toda la BD, tablas y campos son UTF8.

Tengo una base de datos de productos y hago una busqueda por nombre. Quiero que si el usuario buscar sin poner los acentos, encuentre los productos aunque en la BD esté guardado con acentos.

Para ello estoy utilizando REGEXP pero me esta dando problemas. Por algun motivo creo que en las expresiones regulares no me funcionan los acentos.

Para buscar un producto con la palabra 'rápida' queria usar una query como esta:

Código PHP:
SELECT id FROM articulos WHERE nombre REGEXP 'r[aáàâä]p[iíìîï]d[aáàâä]' 
Pero no funciona, os pongo varias consultas que he probado y sus resultados:

Código PHP:
SELECT id FROM articulos WHERE nombre REGEXP 'rápid[aeiou]'
 
//Devuelve lineas con la palabra 'rápido' y con la palabra 'rápida'

SELECT id FROM articulos WHERE nombre REGEXP 'r[aá]p'
 
//Devuelve lineas con la palabra 'rap' pero no con 'ráp' 
Es como si la 'á' no funcionara dentro de los corchetes. Ya que buscando 'rápida' la consulta funciona.

Ya tengo pensadas varias soluciones alternativas (como tener otro campo nombre sin acentos), pero me gustaria salucionarlo sin tener que recurrir a eso.

Gracias por vuestra ayuda.