DBAtlas · Atlas d'exploitation des bases de données

1267: Illegal mix of collations

MySQL

Que signifie cette erreur ?

Dans une opération de comparaison ou de combinaison (JOIN, WHERE, UNION, CONCAT), deux chaînes de collations différentes ont été combinées et MySQL n'a pas pu déterminer quelles règles de collation appliquer.

Cause

Généralement la comparaison de colonnes de jeux de caractères/collations différents (par ex. utf8mb4_general_ci contre utf8mb4_unicode_ci, ou latin1 contre utf8mb4), ou une incohérence entre une colonne et la collation de la connexion. Fréquent lorsque les tables/bases ont été créées avec des valeurs par défaut différentes.

Comment la corriger

Amenez les deux côtés de la comparaison à la même collation : précisez une collation explicite avec COLLATE (par ex. col1 = col2 COLLATE utf8mb4_unicode_ci) ou utilisez CONVERT(... USING ...). Comme correctif durable, convertissez les colonnes/tables concernées vers un jeu de caractères et une collation uniques et cohérents. Alignez aussi la collation de la connexion (collation_connection).

Ouvrir dans DBAtlas →

Autres entrées pour ce moteur