在MySQL中连接两个字符串:非法的排序规则混合

时间:2019-05-09 16:00:38

标签: mysql string casting character concat

我知道这可能是一个非常简单的问题,但我有此错误:

  

排序规则(utf8mb4_unicode_ci,IMPLICIT)和   (utf8mb4_general_ci,IMPLICIT)用于操作“喜欢”

这是我的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,所以也许我做错了。

谢谢。

1 个答案:

答案 0 :(得分:1)

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

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