MySQL - 操作'UNION'的非法混合排序(utf8_general_ci,COERCIBLE)和(latin1_swedish_ci,IMPLICIT)

时间:2008-10-08 15:42:32

标签: sql mysql unicode union collation

如何一劳永逸地修复该错误?我只是想在MySQL中做联盟。

(我正在寻找一个快捷方式,就像让MySQL忽略这个问题的选项或者最好的猜测,而不是在100多个表上更改排序......至少今天不是这样)

3 个答案:

答案 0 :(得分:7)

不确定mySQL,但是在MSSQL中你可以更改查询中的排序规则,例如,如果你有2个表具有不同的排序规则并且你想加入它们,或者你可以在你的情况下加入UNION你可以做

select column1 from tableWithProperCollation
union all
select column1 COLLATE SQL_Latin1_General_CP1_CI_AS from tableWithDifferentCollation

当然,SQL_Latin1_General_CP1_CI_AS只是您想要“转换”为

的整理示例

答案 1 :(得分:4)

谢谢Kristof。在这种情况下,它是由第一个选择中的文字选择引起的,而不是来自任何不同的表格排序。

具有讽刺意味的是,我按照我为此问题所做的old blog post来实现了它。

答案 2 :(得分:1)

我发现修复似乎是一个简单的修复方法是改变整个数据库,这会给你带来麻烦。我认为这可能不是最好的方法,但它对我有用,而且很容易。我在MySQL中编辑了这个命令:

ALTER DATABASE databasename COLLATE utf8_unicode_ci;
相关问题