DBAtlas · Atlas de operaciones de bases de datos

1267: Illegal mix of collations

MySQL

¿Qué significa?

En una comparación u operación de combinación (JOIN, WHERE, UNION, CONCAT), se combinaron dos cadenas con collations distintas y MySQL no pudo determinar qué reglas de collation aplicar.

¿Por qué ocurre?

Normalmente se comparan columnas con juegos de caracteres/collations distintos (p. ej., utf8mb4_general_ci frente a utf8mb4_unicode_ci, o latin1 frente a utf8mb4), o hay una discrepancia entre una columna y la collation de la conexión. Habitual cuando las tablas/bases de datos se crearon con valores predeterminados distintos.

Cómo solucionarlo

Lleve ambos lados de la comparación a la misma collation: especifique una collation explícita con COLLATE (p. ej., col1 = col2 COLLATE utf8mb4_unicode_ci) o use CONVERT(... USING ...). Como solución permanente, convierta las columnas/tablas afectadas a un único juego de caracteres y collation coherentes. Alinee también la collation de la conexión (collation_connection).

Abrir en DBAtlas →

Más entradas de este motor