当数据库中的字段具有相同的排序规则时,非法混合排序规则

时间:2017-01-19 23:06:10

标签: php mysql pdo

我收到以下错误消息:

Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General er
ror: 1267 Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and     (utf8_general_ci,IMPLICIT) for operation '=''

查询如下所示:

SELECT
name,
address,
email,
@userid:=(user) AS user_id,
(select count(id) from messages where user_id=@userid and thread_start='1')
 as counter,
 (select group_concat(search) from saved_search where user_id=@userid ) as area
FROM
useraccount
WHERE
flag = '1'

通过添加COLLATION

解决了这个问题
SELECT
name,
address,
email,
@userid:=(user) AS user_id,
(select count(id) from messages where user_id=@userid COLLATE utf8_unicode_ci and thread_start='1')
 as counter,
 (select group_concat(search) from saved_search where user_id=@userid     COLLATE utf8_unicode_ci ) as area
FROM
useraccount
WHERE
flag = '1'

我的问题是,当我查看数据库时,当用户字段和user_id字段都具有相同的排序规则时,为什么要指定必要的排序规则呢?

只是为了让它变得更加混乱,在MySQL工作台中,查询起作用,但在PHP / PDO中它出错了。

0 个答案:

没有答案