MySQL - Illegale Mischung von Kollationen (UTF8_GENERAL_CI, Zwangsvoll) und (latin1_swedish_ci, implizit) für die Operation 'Union' '
Frage
Wie behebe ich diesen Fehler ein für alle Mal? Ich möchte nur in der Lage sein, Gewerkschaften in MySQL zu machen.
(Ich suche nach einer Abkürzung, wie eine Option, um MySQL dieses Problem zu ignorieren, oder es ist die beste Vermutung, nicht zu tun, um Kollationen auf 100 -Tabellen zu ändern ... zumindest heute nicht heute)
Lösung
Ich bin mir nicht sicher über MySQL, aber in MSSQL können Sie die Zusammenfassung in der Abfrage ändern. Wenn Sie beispielsweise 2 Tabellen mit unterschiedlicher Zusammenstellung haben und sich ihnen anschließen möchten oder wie in Ihrer Situation Crate Union Sie tun können
select column1 from tableWithProperCollation
union all
select column1 COLLATE SQL_Latin1_General_CP1_CI_AS from tableWithDifferentCollation
Natürlich ist SQL_LATIN1_GENERAL_CP1_CI_AS nur ein Beispiel für die Zusammenfassung, die Sie in "konvertieren" möchten
Andere Tipps
Danke Kristof. In diesem Fall wurde es durch die Auswahl eines wörtlichen in der ersten Auswahl und nicht aus anderen Tabellenkollationen verursacht.
Ironischerweise habe ich es zum Laufen gebracht, indem ich dem folgt alter Blog -Beitrag Ich habe für dieses Problem gemacht.
Eine Fix, die ich festgestellt habe, die eine einfache Lösung zu sein scheint, ist die Änderung der gesamten Datenbank, die Ihnen Probleme gibt. Ich denke, das ist vielleicht nicht der beste Weg, es zu tun, aber es funktioniert für mich und es ist einfach. Ich rune diesen Befehl in MySQL:
ALTER DATABASE databasename COLLATE utf8_unicode_ci;