MySQL - Mistura ilegal de colações (UTF8_General_Ci, coercível) e (latin1_swedish_ci, implícito) para a operação 'Union'

StackOverflow https://stackoverflow.com/questions/183446

Pergunta

Como corrigi esse erro de uma vez por todas? Eu só quero poder fazer sindicatos no MySQL.

(Estou procurando um atalho, como uma opção para fazer o MySQL ignorar esse problema ou tomar seu melhor palpite, sem querer mudar de collações em 100s de mesas ... pelo menos não hoje)

Foi útil?

Solução

Não tenho certeza sobre o MySQL, mas no MSSQL, você pode alterar o agrupamento na consulta, por exemplo, se você tiver 2 tabelas com agrupamento diferente e deseja se juntar a eles ou como na sua situação, união você pode fazer

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

É claro que SQL_LATIN1_GENERAL_CP1_CI_AS é apenas um exemplo de agrupamento que você deseja "converter" para

Outras dicas

Obrigado Kristof. Nesse caso, estava sendo causado pela seleção de um literal na primeira seleção, e não de diferentes colações de tabela.

Ironicamente, eu consegui funcionar seguindo isso Antigo post do blog Eu fiz para esse problema.

Uma correção que descobri que parece ser uma correção fácil é alterar todo o banco de dados que está lhe dando problemas. Estou pensando que essa pode não ser a melhor maneira de fazê -lo, mas funciona para mim e é fácil. Eu rio este comando em mysql:

ALTER DATABASE databasename COLLATE utf8_unicode_ci;
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top