在 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;

我开始使用 CONCATCAST 所以也许我做错了什么。

谢谢。

e.slug 声明为 utf8mb4_unicode_ci,但 @var3utf8mb4_general_ci。在比较之前,您需要将它们转换为相同的排序规则。

SET @var3 = CONVERT(CONCAT("%", @var2, "%") USING utf8mb4_unicode_ci);