Pregunta

tengo dos bases de datos MySQL físicamente separados en los que tengo que correr una sola consulta.

La consulta tiene una sección de SQL que se parece a esto:

and foo_table.bar_column like concat('%', rules.pattern, '%') COLLATE utf8_general_ci

funciona muy bien en la base de datos A, pero en la base de datos B me sale este error:

ERROR 1253 (42000): COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'latin1'

Si quito la colación que funciona muy bien en la base de datos B, pero en la base de datos de un recibo este error:

ERROR 1267 (HY000): Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation 'like'

¿Hay una versión de la consulta que se ejecutará en ambas bases de datos?

O, hay una configuración que puede cambiar en cualquier base de datos para realizar la consulta feliz en ambos lugares?

Actualización:

Base de datos A es la versión 5.1.38, Base de datos B es la versión 5.1.34

¿Fue útil?

Solución

aquí .

ACTUALIZACIÓN:. las sugerencias de que enlazan resuelven mi problema, aunque la sintaxis es un poco fuera de fecha y no se tiene que convertir cada columna más, sólo la tabla

ALTER TABLE the_latin_one CONVERT TO CHARACTER SET utf8;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top