mar
21
2012

Búsqueda de texto en mysql con/sin tildes

Creo que es un problema relativamente habitual, la búsqueda de texto en mysql con-sin tildes. Cuando buscamos una palabra en base de datos y como al escribirla hemos puesto (u olvidado) una tilde no obtenemos los resultados esperados. Para el desarrollador puede tener poca importancia, pero para los clientes suele ser un tema delicado.

Generalmente, en MySQL se utiliza latin1_general_ci como codificación de la base de datos. Esta codificación, como todas las que llevan el sufijo _ci, no distingue entre mayúsculas y minúsculas pero si que distingue caracteres acentuados de los no acentuados. Por lo tanto, si nosotros queremos que en nuestras búsquedas no se tengan en cuenta las tildes, debemos utilizar otra codificación, aunque solo sea en la búsqueda. Basta con añadir en la query SQL la sentencia COLLATE como se ve en la siguiente linea.

WHERE campo LIKE _utf8 ‘%cadenaabuscar%’ COLLATE utf8_general_ci 

Con este sencillo cambio en las consultas, obtendremos los resultados esperados.

Posts relacionados

Acerca del autor:

3 Comentarios + Añadir Comentario

Deja tu comentario

Publicidad