在 mySQL 中连接两个字符串:归类的非法混合
Concat two strings in mySQL : Illegal mix of collations
我知道这可能是一个非常简单的问题,但我遇到了这个错误:
Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) and
(utf8mb4_general_ci,IMPLICIT) for operation 'like'
这是我的 mySQL 代码:
SET @var1 = YEAR(CURDATE())-11;
SET @var2 = CAST(@var1 AS CHAR);
SET @var3 = CONCAT("%", @var2, "%");
DELETE a,b,c,d
FROM wp_posts a
LEFT JOIN wp_term_relationships b ON ( a.ID = b.object_id )
LEFT JOIN wp_postmeta c ON ( a.ID = c.post_id )
LEFT JOIN wp_term_taxonomy d ON ( d.term_taxonomy_id = b.term_taxonomy_id )
LEFT JOIN wp_terms e ON ( e.term_id = d.term_id )
WHERE e.slug LIKE @var3;
我开始使用 CONCAT
和 CAST
所以也许我做错了什么。
谢谢。
e.slug
声明为 utf8mb4_unicode_ci
,但 @var3
为 utf8mb4_general_ci
。在比较之前,您需要将它们转换为相同的排序规则。
SET @var3 = CONVERT(CONCAT("%", @var2, "%") USING utf8mb4_unicode_ci);
我知道这可能是一个非常简单的问题,但我遇到了这个错误:
Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for operation 'like'
这是我的 mySQL 代码:
SET @var1 = YEAR(CURDATE())-11;
SET @var2 = CAST(@var1 AS CHAR);
SET @var3 = CONCAT("%", @var2, "%");
DELETE a,b,c,d
FROM wp_posts a
LEFT JOIN wp_term_relationships b ON ( a.ID = b.object_id )
LEFT JOIN wp_postmeta c ON ( a.ID = c.post_id )
LEFT JOIN wp_term_taxonomy d ON ( d.term_taxonomy_id = b.term_taxonomy_id )
LEFT JOIN wp_terms e ON ( e.term_id = d.term_id )
WHERE e.slug LIKE @var3;
我开始使用 CONCAT
和 CAST
所以也许我做错了什么。
谢谢。
e.slug
声明为 utf8mb4_unicode_ci
,但 @var3
为 utf8mb4_general_ci
。在比较之前,您需要将它们转换为相同的排序规则。
SET @var3 = CONVERT(CONCAT("%", @var2, "%") USING utf8mb4_unicode_ci);