Concat две строки в MySQL: незаконное сочетание сопоставлений - PullRequest
0 голосов
/ 09 мая 2019

Я знаю, что это может быть очень простой вопрос, но у меня есть эта ошибка:

Неверное сочетание параметров сортировки (utf8mb4_unicode_ci, IMPLICIT) и (utf8mb4_general_ci, IMPLICIT) для операции '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, так что, возможно, я сделал что-то не так.

Спасибо.

1 Ответ

1 голос
/ 09 мая 2019

e.slug объявляется как utf8mb4_unicode_ci, но @var3 равно utf8mb4_general_ci.Вам необходимо преобразовать их в одно и то же сопоставление перед сравнением.

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