MySQL - Mix illegale di regole di confronto (utf8_general_ci, COERCIBLE) e (latin1_swedish_ci, IMPLICIT) per l'operazione "UNION"

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

Domanda

Come posso correggere quell'errore una volta per tutte? Voglio solo essere in grado di fare sindacati in MySQL.

(p
È stato utile?

Soluzione

Non sei sicuro di mySQL ma in MSSQL puoi modificare le regole di confronto nella query, ad esempio se hai 2 tabelle con regole di confronto diverse e vuoi unirti a loro o come nella tua situazione UNION puoi farlo

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

Ovviamente SQL_Latin1_General_CP1_CI_AS è solo un esempio di regole di confronto che vuoi " convertire " a

Altri suggerimenti

Grazie Kristof. In questo caso è stato causato selezionando un valore letterale nella prima selezione e non da diverse regole di confronto della tabella.

Ironicamente l'ho fatto funzionare seguendo questo vecchio post sul blog ho risolto il problema.

Una correzione che ho trovato che sembra una soluzione semplice è quella di modificare l'intero database che ti dà problemi. Sto pensando che questo potrebbe non essere il modo migliore per farlo, ma funziona per me ed è facile. Eseguo questo comando in MySQL:

ALTER DATABASE databasename COLLATE utf8_unicode_ci;
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top