Puede cambiar la intercalación en tiempo de ejecución en la consulta SQL,
...where title like '%torun%' collate utf8_general_ci
pero ten en cuenta que el cambio de la colación sobre la marcha en tiempo de ejecución renuncia a la posibilidad de MySQL usando un índice, por lo que el rendimiento en tablas de gran tamaño puede ser terrible.
O bien, puede copiar la columna en otra columna, como searchable_title
, pero cambie la intercalación en ella. En realidad, es común hacer este tipo de cosas, donde se copian los datos pero se presentan en una forma ligeramente diferente que está optimizada para una carga de trabajo/propósito específico. Puede utilizar activadores como una buena forma de mantener sincronizadas las columnas duplicadas. Este método tiene el potencial de funcionar bien, si está indexado.
Nota - Asegúrese de que su db realmente tenga esos caracteres y no entidades html. Además, el conjunto de caracteres de su conexión es importante. El anterior se supone que está establecido en UTF-8, por ejemplo, a través de set names como set names utf8
Si no es así, se necesita un introducer para el valor literal
...where title like _utf8'%torun%' collate utf8_general_ci
y, por supuesto, el valor de las comillas simples debe ser realidad utf8 codificado, incluso si el resto de la consulta SQL no.
http://stackoverflow.com/questions/2302813/normalizing-accented-characters-in-mysql-queries – Sun
@SunWKim Lo intenté antes pero no funcionó para mí. – ocanal
@ocanal ¿Encontraste una solución que puedes compartir con nosotros? – zvzej