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

时间:2009-06-02 15:09:40

标签: mysql collation

我收到以下错误:

  

非法混合整理   (latin1_swedish_ci,COERCIBLE)和   (utf8_general_ci,IMPLICIT)for   操作'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。

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

2 个答案:

答案 0 :(得分:2)

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

$mysqli->set_charset("utf8");

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

使用普通mysql,请使用:

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

答案 1 :(得分:0)

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