Ver Mensaje Individual
  #6 (permalink)  
Antiguo 09/10/2013, 09:41
Avatar de jonni09lo
jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: Buscar con PHP en MySQL palabras acentuadas

Cita:
Iniciado por AlanChavez Ver Mensaje
Define "muchos" registros, y "mucho tiempo".

Yo he utilizado expresiones regulares en tablas con millones de registros y las consultas se ejecutan en milisegundos, si es cierto que no son tan rápidas como un indice primario, pero que otra alternativa propones?

Si no quieres utilizar expresiones regulares en MySQL, entonces podrias hacer otra columna con el nombre normalizado utilizando solamente caracteres del alfabeto latino (o cualquier alfabeto que quieras) y busca esa columna.

Por ejemplo puedes las columnas:

Nombre, NombreCanonico
José, Jose
Jöse, Jose
Jœsë, Jose

Y cuando busques, utilizas:

SELECT N.Nombre FROM Nombres N WHERE N.NombreCanonico = "Jose";
Viste mi solución?

Por eso dije que es impropio, porque en vez de reinventar la rueda simplemente con cambiar el COLLATE de la tabla basta y sobra y no hay que dar tantas vueltas.

Incluso con que añada COLLATE utf8_general_ci al final de la consulta no necesita hacer el cambio directamente en la tabla.

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.