当所有排序规则都已经标准化时,Mysql 非法混合排序规则

Posted

技术标签:

【中文标题】当所有排序规则都已经标准化时,Mysql 非法混合排序规则【英文标题】:Mysql illegal mix of collations when all collations already standardized 【发布时间】:2011-10-09 00:48:23 【问题描述】:

我收到一个奇怪的 mysql 错误:尝试将一行插入包含不赞成外观的表时 - ಠ_ಠ - 我收到以下错误:

排序规则 (latin1_swedish_ci,IMPLICIT) 和 (utf8_general_ci,COERCIBLE) 的非法混合操作 = 'select...

果然,我数据库中的一些表被设置为latin1_swedish_ci 排序规则。我将所有表格都更改为utf8_general_ci,但错误仍然存​​在。

我错过了什么?

【问题讨论】:

排序规则也可以在单个列级别设置。你检查了吗? 啊,我不知道。那正是它的本来面目。谢谢! 【参考方案1】:

排序规则也可以在单个列级别设置。

见:http://dev.mysql.com/doc/refman/5.0/en/charset-collations.html 还有:http://dev.mysql.com/doc/refman/5.1/en/create-table.html

Made it community wiki,所以你可以在没有我得到@Dan 代表的情况下接受它。

【讨论】:

查看您使用的排序规则:SHOW FULL COLUMNS IN tablename;要更改它: ALTER TABLE tablename MODIFY columnname VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci;

以上是关于当所有排序规则都已经标准化时,Mysql 非法混合排序规则的主要内容,如果未能解决你的问题,请参考以下文章

如何解决“非法混合排序规则”SQLException?

出现问题:MySQL中的排序规则的非法混合[重复]

排序规则的非法混合 MySQL 错误

在 LOCATE 中使用用户定义的变量时,MySQL 非法混合排序规则

MySQL 非法混合排序规则

MySQL某些字符导致“非法混合排序规则”错误