MySQL在INSERT SELECT上非法混合排序

时间:2012-07-14 10:32:40

标签: mysql

我正在尝试执行以下查询以将数据从一个数据库表移动到另一个数据库表,并在表上使用不同的排序规则以及字段上的不同排序规则:

INSERT INTO `db1`.`my_table` SELECT * FROM `db2`.`my_table` WHERE 1 COLLATE 'latin1_swedish_ci';

这总是给我以下错误:

COLLATION 'latin1_swedish_ci' is not valid for CHARACTER SET 'binary'

这两个数据库的表是字符集“latin1”,所以我不知道它为什么在错误中说“二进制”。

如果我没有整理,我会得到通常的“非法混合排序”错误:

SQL error #1267 : Illegal mix of collations (latin1_general_ci,IMPLICIT) and (latin1_swedish_ci,IMPLICIT) for operation '='

如何构建这样的查询以使其正常工作?

如果我可以在执行查询文件之前设置字符集和排序规则,而不是按查询执行此操作,那就更好了。会严重的让我头疼!

0 个答案:

没有答案