跨数据库MySQL的不一致错误COLLATE
-
20-09-2019 - |
题
我有两个物理上分开的MySQL数据库在其上我要运行的单个查询。
在查询有SQL的一个部分,其看起来像这样:
and foo_table.bar_column like concat('%', rules.pattern, '%') COLLATE utf8_general_ci
它运行在数据库中的正常,但对数据库B I得到这个错误:
ERROR 1253 (42000): COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'latin1'
如果我删除核对它运行在数据库B细,但是,数据库A I得到这个错误:
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版
解决方案
一些有希望信息>。
更新:在该链接的建议解决我的问题,虽然语法是过时的一点,你不必每列了转换,只是表
ALTER TABLE the_latin_one CONVERT TO CHARACTER SET utf8;
不隶属于 StackOverflow