2008-10-08 2 views
12

Как исправить эту ошибку раз и навсегда? Я просто хочу иметь возможность создавать союзы в MySQL.MySQL - Недопустимое сочетание сортировок (utf8_general_ci, COERCIBLE) и (latin1_swedish_ci, IMPLICIT) для операции «UNION»

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

ответ

7

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

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

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

+0

Это может сработать, но мой запрос содержит около 80 столбцов, некоторые из них состоят из еще большего количества столбцов. Для редактирования всего запроса потребуется некоторое время. Не существует только «игнорировать ошибки сортировки»? :-) – Greg 2008-10-08 16:33:03

4

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

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

1

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

ALTER DATABASE databasename COLLATE utf8_unicode_ci;