为什么我收到此错误?

时间:2011-02-03 17:38:39

标签: mysql database phpmyadmin

我已经通过phpmyadmin将myql数据从我的本地机器导入到webserver,当我运行我的脚本时,我收到此错误

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

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

2 个答案:

答案 0 :(得分: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

等。如果您想要更明确的信息,请显示您的查询和表格定义。

答案 1 :(得分:0)

您无法将两个字符串与两个不同的字符编码进行比较。他们需要具有相同的char编码。这基本上是整理所关注的 - 对于您要比较的两个列,它需要相同。

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