MySQL - недопустимое сочетание параметров сортировки (utf8_general_ci, COERCIBLE) и (latin1_swedish_ci, IMPLICIT) для операции 'UNION' - PullRequest
12 голосов
/ 08 октября 2008

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

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

Ответы [ 3 ]

7 голосов
/ 08 октября 2008

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

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

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

4 голосов
/ 08 октября 2008

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

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

1 голос
/ 08 октября 2014

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

ALTER DATABASE databasename COLLATE utf8_unicode_ci;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...