我已经通过phpmyadmin将myql数据从我的本地机器导入到webserver,当我运行我的脚本时,我收到此错误
Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation '='
为什么这?我该如何解决这个问题?
答案 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)更改排序规则。确保所有表使用相同的排序规则。