我从我的本地机器进口MySQL的数据通过phpmyadmin到网络服务器和运行我的脚本,我收到此错误为什么我得到这个错误?
Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation '='
这是为什么?我该如何解决这个问题?
我从我的本地机器进口MySQL的数据通过phpmyadmin到网络服务器和运行我的脚本,我收到此错误为什么我得到这个错误?
Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation '='
这是为什么?我该如何解决这个问题?
问题是因为您的连接与正在比较的列的排序规则对比。你有三个真正的选择。将您的比较转换为适当的排序规则,更改列的排序规则或更改连接的排序规则。
要投:
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
等,如果你想更明确的信息,表明你的查询和你的表格定义。
您不能使用两种不同的字符编码比较两个字符串。他们需要具有相同的字符编码。这基本上是由排序规则处理的 - 它需要对两个列进行比较。
您可以从phpMyAdmin或任何其他数据库版本软件(如MySQL Workbench)更改排序规则。确保所有表使用相同的排序规则。
我该怎么做从Phpmyadmin – 2011-02-03 17:57:34
是啊谢谢我得到它 – 2011-02-03 17:58:28