Ответ 1
У меня была такая же проблема, и я обнаружил, что таблицы имеют одинаковое сопоставление, но столбцы этого не делают. Вы можете скачать пробную версию mysqlyog, а в другой таблице отключить опцию скрытия языка. Самый быстрый способ увидеть.
Мне нужна ваша помощь в определении причины этой ошибки.
Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation '='
Процедура работала до вчерашнего дня, и сегодня она начала давать ошибку незаконное сочетание сортировок. Я проверил каждую таблицу моей базы данных, и все таблицы и ее столбцы находятся в одной кодировке и сортировке, которая: - utf8 utf8_unicode_ci.
Я создал другую схему с тем же structrue и попытался выполнить тот же запрос, который работает отлично, но не по исходной схеме.
может ли кто-нибудь предоставить какие-либо данные по этому поводу? Почему так происходит?
У меня была такая же проблема, и я обнаружил, что таблицы имеют одинаковое сопоставление, но столбцы этого не делают. Вы можете скачать пробную версию mysqlyog, а в другой таблице отключить опцию скрытия языка. Самый быстрый способ увидеть.
в моем случае это было из-за глупого mysql workbench - он каким-то образом добавляет к сортировке по умолчанию процедуры из схемы (к некоторым метаданным или к чему), а затем, если вы сопоставляете что-либо в процедуре с различной сортировкой, это исключение возникает;
должен установить правильную (ту, которая используется в процедуре) сопоставление с схемой, а затем переделать процедуру и применить изменения (необходимо сохранить или воссоздать), и теперь все в порядке
Каждый параметр функции concat необходимо преобразовать.
CONCAT(CONVERT(field_A USING utf32), CONVERT(field_B USING utf32))
Или, что когда-либо срабатывало у вас с проблемой.
моя проблема была такой же, но в моем случае достаточно было использовать преобразование перед использованием SQL-оператора - в php
iconv(...)