【问题标题】:Illegal mix of collations (latin1_swedish_ci,COERCIBLE) and (utf8_general_ci,IMPLICIT) for operation 'find_in_set'用于操作“find_in_set”的排序规则(latin1_swedish_ci,COERCIBLE)和(utf8_general_ci,IMPLICIT)的非法混合
【发布时间】:2010-10-30 17:15:54
【问题描述】:

我收到以下错误:

排序规则的非法混合 (latin1_swedish_ci,COERCIBLE) 和 (utf8_general_ci,IMPLICIT) 对于 操作'find_in_set'

这是我试图执行的查询:

SELECT ID FROM xs_user_profiles WHERE ID='' AND FIND_IN_SET('1',site_structure);

我查看了这个表的属性,它有 charset utf8 和 collat​​ion utf8_general_ci。

这适用于我所有的网站,所以我不确定出了什么问题。

【问题讨论】:

标签: mysql collation


【解决方案1】:

如果您使用的是mysqli,请在连接后立即发出此命令:

$mysqli->set_charset("utf8");

这会将您的连接编码设置为UTF8(与您的表使用的相同)。

对于普通的mysql,使用这个:

mysql_query("SET NAMES utf8", $conn);
mysql_query("SET CHARACTER SET utf8", $conn);

【讨论】:

  • 感谢您的反应,但我使用的是普通的 mysql。
【解决方案2】:

我猜您的字符串文字 ('1') 由于不同的连接变量而处于不同的排序规则中。见here

【讨论】:

    猜你喜欢
    • 2010-09-16
    • 2015-06-03
    • 2015-09-16
    • 2021-05-06
    • 1970-01-01
    • 1970-01-01
    • 2011-08-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多