Mysql Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8mb4_general_ci,COERCIBLE)

kevensuu · 2019-12-03 11:14:59 · 热度: 53

mysql 链表查询时报错:

Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8mb4_general_ci,COERCIBLE) for operation 'like'

这个问题一看就是编码的问题。

怎么产生的呢?
1、emoji表情

2、MySQL 的 utf8 并不是真正的 utf8。

解决方法

有网友给出的解决方法是:

将比较等式一边进行字符串转换,如改为 CONVERT(b.fullCode USING utf8) COLLATE utf8_unicode_ci

SELECT
    a.equ_no,
    b.fullCode
FROM
    equipment a,
    (
        SELECT
            t.*, getEquTypeFullCode (t.equType_id) AS fullCode
        FROM
            equ_type t
    ) b
WHERE
    substring(a.equ_no, 1, 5) = CONVERT(b.fullCode USING utf8) COLLATE utf8_unicode_ci;

我的解决方法

使用数据库,数据表,对应字段的字符集为:utf8-mb4

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册