MySQL - Illegale Mischung von Kollationen (UTF8_GENERAL_CI, Zwangsvoll) und (latin1_swedish_ci, implizit) für die Operation 'Union' '

StackOverflow https://stackoverflow.com/questions/183446

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)

War es hilfreich?

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;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top