2009-06-15 40 views
11

我需要你在确定帮助为什么这个错误是未来MySQL的非法混合“=”

Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation '=' 

的过程,直到昨天工作的罚款和今天它开始给出错误 非法组合的排序规则。我检查了数据库的每个表,所有表和它的列都在一个字符集和归类中: - utf8 utf8_unicode_ci。

我创建了另一个架构具有相同的结构,并试图执行相同的查询,它工作正常,但没有在其原始架构。

任何人都可以提供任何输入?为什么会这样呢?

+1

的实际查询和错误消息,将是有益的。 – VolkerK 2009-06-15 14:29:31

回答

9

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

+0

我也有@Radmilo这个问题,如果我能够通过你的快速解答来解决这个问题,我必须非常感谢你! – swdev 2011-10-31 17:33:03

4
在我的情况

这是由于愚蠢的MySQL工作台 - 它在某种程度上增加了程序的默认排序规则从架构(一些元数据或者是什么),然后如果你在整理过程,不同的排序规则什么,这发生异常;

必须设置正确(这是在过程中使用的一个)的排序规则架构,然后重新编辑的程序和应用更改(必须重新保存或重建)和现在一切OK

2

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

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

或者哪个功能可以解决您的问题。

0

我的问题是一样的,但对我来说足够用转换使用SQL语句之前 - 在PHP

iconv(...) 
相关问题