Подтвердить что ты не робот

MySQL - нелегальное сочетание сортировок (utf8_general_ci, COERCIBLE) и (latin1_swedish_ci, IMPLICIT) для операции "UNION"

Как я могу исправить эту ошибку раз и навсегда? Я просто хочу иметь возможность создавать союзы в MySQL.

(Я ищу ярлык, как вариант, чтобы заставить MySQL игнорировать эту проблему или угадывать ее лучше, не глядя на изменение сортировки на 100 таблицах... по крайней мере, не сегодня)

4b9b3361

Ответ 1

Не уверен о mySQL, но в MSSQL вы можете изменить сортировку в запросе, например, если у вас есть две таблицы с различной сортировкой, и вы хотите присоединиться к ним или как в вашей ситуации ящик UNION вы можете сделать

select column1 from tableWithProperCollation
union all
select column1 COLLATE SQL_Latin1_General_CP1_CI_AS from tableWithDifferentCollation

Конечно, SQL_Latin1_General_CP1_CI_AS - это просто пример сортировки, который вы хотите "преобразовать" в

Ответ 2

Спасибо Кристофу. В этом случае это вызвано выбором литерала в первом выборе, а не из разных сопоставлений таблиц.

По иронии судьбы, я получил его, выполнив этот старый пост в блоге, который я сделал для этой проблемы.

Ответ 3

Исправление, которое я обнаружил, похоже, является простым решением - это изменить всю базу данных, которая дает вам проблемы. Я думаю, что это не лучший способ сделать это, но это работает для меня, и это легко. Я использую эту команду в MySQL:

ALTER DATABASE databasename COLLATE utf8_unicode_ci;