2011-02-03 200 views
0

我从我的本地机器进口MySQL的数据通过phpmyadmin到网络服务器和运行我的脚本,我收到此错误为什么我得到这个错误?

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

这是为什么?我该如何解决这个问题?

回答

1

问题是因为您的连接与正在比较的列的排序规则对比。你有三个真正的选择。将您的比较转换为适当的排序规则,更改列的排序规则或更改连接的排序规则。

要投:

WHERE fooColumn = CAST('test' AS CHAR CHARACTER SET utf8) COLLATE utf8_general_ci 

更改列排序规则:

ALTER TABLE fooTable 
    MODIFY follColumn VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci; 

要更改连接校对:

SET NAMES utf8 COLLATE utf8_general_ci 

等,如果你想更明确的信息,表明你的查询和你的表格定义。

0

您不能使用两种不同的字符编码比较两个字符串。他们需要具有相同的字符编码。这基本上是由排序规则处理的 - 它需要对两个列进行比较。

您可以从phpMyAdmin或任何其他数据库版本软件(如MySQL Workbench)更改排序规则。确保所有表使用相同的排序规则。

+0

我该怎么做从Phpmyadmin – 2011-02-03 17:57:34

+0

是啊谢谢我得到它 – 2011-02-03 17:58:28

相关问题