4

単一のクエリを実行する必要がある、物理的に分離された 2 つの MySQL データベースがあります。

クエリには、次のような SQL セクションがあります。

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

データベース A では問題なく動作しますが、データベース BI では次のエラーが発生します。

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

照合順序を削除すると、データベース B では問題なく動作しますが、データベース AI では次のエラーが発生します。

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

両方のデータベースで実行されるクエリのバージョンはありますか?

または、両方の場所でクエリを満足させるために、どちらかのデータベースで変更できる構成はありますか?

アップデート:

データベース A はバージョン 5.1.38、データベース B はバージョン 5.1.34

4

1 に答える 1

0

ここにいくつかの有望な情報があります

更新:そのリンクの提案は私の問題を解決しましたが、構文は少し古くなっているため、各列を変換する必要はなく、テーブルだけです。

ALTER TABLE the_latin_one CONVERT TO CHARACTER SET utf8;
于 2010-03-16T14:03:44.033 に答える