Mysql Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8mb4_general_ci,COERCIBLE)
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
猜你喜欢:暂无回复。