# Erro code 1271 - Illegal mix of collations for operation union

Esse erro acontece quando a gente tenta usar a cláusula UNION pra juntar duas consultas de tabelas diferentes, e o collation das tabelas é diferente.

Nesse caso, precisa descobrir o "character set" e o "collation" das duas tabelas, e alterar de alguma delas, pra que ambas fiquem iguais. De preferência alterar o da tabela que tiver menos dados, pra que a alteração seja mais rápida:

<div class="conteudo" id="bkmrk-show-full-columns-fr" itemprop="articleBody"><div class="conteudo" itemprop="articleBody"><div>`SHOW FULL COLUMNS FROM tabela;`</div></div></div>`SHOW CREATE TABLE tabela;`<span style="color: #888888;">  
</span>

E o comando para alterar:

`ALTER TABLE outratabela MODIFY coluna VARCHAR(150) CHARACTER SET latin1 COLLATE latin1_swedish_ci;`

Também pode acontecer um erro parecido, quando se consulta em uma view:

`Illegal mix of collations (utf8mb4_general_ci,COERCIBLE) and (utf8mb4_unicode_ci,COERCIBLE) for operation '='`

Neste caso, o campo que causava o erro era um campo "calculado" - ou seja, o valor dele não vinha do banco de dados, mas de uma cláusula IF. Isso porque o campo calculado herda o conjunto de caracteres (vulgo collation) do campo da tabela. Daí para evitar o erro precisamos forçar o collate na hora de criar os campos da view:

`IF((`produto`.`categoria` <> 3), CONVERT('tipo_1' USING utf8), CONVERT('tipo_2' USING utf8)) AS `produto_categoria``