MySQL非法混合使用排序规则(utf8_unicode_ci,隐式)和(utf8_general_ci,隐式)进行操作'=';

MySQL非法混合使用排序规则(utf8_unicode_ci,隐式)和(utf8_general_ci,隐式)进行操作'=';,mysql,collation,Mysql,Collation,我需要你的帮助来确定这个错误的原因 Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation '=' 直到昨天,这个程序运行良好,今天开始出现错误 非法混合排序规则。我检查了数据库中的每个表,所有表及其列都在一个字符集和排序规则中,即:-utf8 utf8\u unicode\u ci 我创建了另一个具有相同结构的模式,并尝试执行相同的查询—它可以正常工作,

我需要你的帮助来确定这个错误的原因

Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation '='
直到昨天,这个程序运行良好,今天开始出现错误 非法混合排序规则。我检查了数据库中的每个表,所有表及其列都在一个字符集和排序规则中,即:-utf8 utf8\u unicode\u ci

我创建了另一个具有相同结构的模式,并尝试执行相同的查询—它可以正常工作,但不能在其原始模式上运行


有人能提供这方面的信息吗?为什么会发生这种情况?

我也遇到了同样的问题,我发现表具有相同的排序规则,但列没有。 您可以下载mysqlyog试用版,并在alter table中取消选中隐藏语言选项。。。。
最快的查看方式。

在我的情况下,这是由于愚蠢的mysql工作台- 它以某种方式向过程中添加了模式中的默认排序规则(到某些元数据或其他内容),然后,若您将过程中的任何内容排序到不同的排序规则,则会发生此异常


必须将正确的(过程中使用的)排序规则设置为架构,然后重新编辑过程并应用更改(必须重新保存或重新创建),现在一切正常

concat函数的每个参数都需要转换

CONCAT(CONVERT(field_A USING utf32), CONVERT(field_B USING utf32))

或者哪一个函数有问题。

我的问题是一样的,但在我的例子中,在使用php中的sql语句之前使用转换就足够了

iconv(...)

实际的查询和错误信息会很有帮助。我也有这个问题@Radmilo,如果我能通过你的快速回答来解决这个问题,我必须说非常感谢你!正是我的问题。显示的列。谢谢