【发布时间】:2010-09-16 01:19:42
【问题描述】:
如何一劳永逸地修复该错误?我只想能够在 MySQL 中进行联合。
(我正在寻找一种捷径,例如让 MySQL 忽略该问题或采取最佳猜测的选项,而不是希望更改 100 多个表的排序规则……至少今天不会)
【问题讨论】:
标签: sql mysql unicode union collation
如何一劳永逸地修复该错误?我只想能够在 MySQL 中进行联合。
(我正在寻找一种捷径,例如让 MySQL 忽略该问题或采取最佳猜测的选项,而不是希望更改 100 多个表的排序规则……至少今天不会)
【问题讨论】:
标签: sql mysql unicode union collation
不确定 mySQL,但在 MSSQL 中,您可以更改查询中的排序规则,例如,如果您有 2 个具有不同排序规则的表并且您想加入它们,或者在您的情况下使用 crate UNION 您可以这样做
select column1 from tableWithProperCollation
union all
select column1 COLLATE SQL_Latin1_General_CP1_CI_AS from tableWithDifferentCollation
当然,SQL_Latin1_General_CP1_CI_AS 只是您想要“转换”为的排序规则的一个示例
【讨论】:
感谢克里斯托夫。在这种情况下,它是由在第一次选择中选择文字引起的,而不是来自任何不同的表排序规则。
具有讽刺意味的是,我通过关注我为那个问题制作的 old blog post 让它工作了。
【讨论】:
我发现一个看似简单的修复方法是更改给您带来问题的整个数据库。我认为这可能不是最好的方法,但它对我有用而且很容易。我在 MySQL 中运行这个命令:
ALTER DATABASE databasename COLLATE utf8_unicode_ci;
【讨论】: