J'ai eu cette erreur;
Mélange illégal de classements (utf8mb4_unicode_ci, IMPLICIT) et (utf8mb4_general_ci, IMPLICIT) pour l'opération '='
J'ai changé "Collations" en "utf8mb4_unicode_ci". Ensuite, les tableaux ont été tronqués et je ré-importe à nouveau les lignes. Mais toujours la même erreur
Je suppose que vous avez différents classements sur les tables que vous rejoignez. Il indique que vous utilisez un mélange illégal de classements dans les opérations =
.
Vous devez donc définir le classement. Par exemple:
WHERE tableA.field COLLATE utf8mb4_general_ci = tableB.field
Ensuite, vous avez défini les mêmes classements sur le =
opération.
Puisque vous n'avez pas fourni plus d'informations sur les tables, c'est le meilleur pseudo-code que je puisse fournir.
Pour Join Query, j'ai utilisé ce morceau de requête pour résoudre une telle erreur:
select * from contacts.employees INNER JOIN contacts.sme_info
ON employees.login COLLATE utf8mb4_unicode_ci = sme_info.login
Plus tôt, en utilisant la requête suivante, j'obtenais la même erreur:
select * from contacts.employees LEFT OUTER JOIN contacts.sme_info
ON employees.login = sme_info.login
Error: Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for operation '='
Je ne connais pas grand-chose aux classements, mais il semble que les deux tableaux suivent des règles différentes pour le jeu de caractères. Par conséquent, l'opérateur égal à n'a pas pu effectuer. Ainsi, dans la première requête, j'ai spécifié un ensemble de classements à collecter et à combiner.