Frage

Ich habe zwei physikalisch getrennte MySQL-Datenbanken, auf die ich eine einzelne Abfrage auszuführen.

Die Abfrage hat einen Abschnitt von SQL, dass wie folgt aussieht:

and foo_table.bar_column like concat('%', rules.pattern, '%') COLLATE utf8_general_ci

Es läuft gut auf Datenbank A, aber auf Datenbank B bekomme ich diesen Fehler:

ERROR 1253 (42000): COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'latin1'

Wenn ich die Sortierung entfernen läuft es fein auf Datenbank B aber auf Datenbank A ich diesen Fehler:

ERROR 1267 (HY000): Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation 'like'

Gibt es eine Version der Abfrage, die auf beiden Datenbanken laufen wird?

Oder gibt es eine Konfiguration, die ich auf beide Datenbank ändern kann, um die Abfrage glücklich in beiden Orten zu machen?

Update:

Datenbank A ist Version 5.1.38, Datenbank B ist die Version 5.1.34

War es hilfreich?

Lösung

Einige vielversprechende Informationen hier .

UPDATE:. die Vorschläge in dieser Verbindung mein Problem gelöst, obwohl die Syntax ist ein wenig veraltet und Sie müssen nicht jede Spalte konvertieren mehr, nur die Tabelle

ALTER TABLE the_latin_one CONVERT TO CHARACTER SET utf8;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top