4

我有两个物理上独立的 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 回答