Ik heb een halve dag besteed aan het zoeken naar antwoorden op de gevreesde "illegale mix van collaties"-fout. Ik ontdekte dat sommige kolommen in mijn database niet specifiek waren verzameld utf8_unicode_ci . Het lijkt erop dat mysql deze kolommen impliciet heeft verzameld utf8_general_ci .
Specifiek, het uitvoeren van een 'SHOW CREATE TABLE table1'-query leverde iets als het volgende op:
| tabel1 | MAAK TABEL table1
(id
int(11) NIET NULL,col1
varchar(4) KARAKTERINSTELLING utf8 NIET NULL,col2
int(11) NOT NULL,PRIMARY KEY (photo_id
,tag
)) ENGINE=InnoDB STANDAARD CHARSET=utf8 COLLATE=utf8_unicode_ci |
Let op de regel 'col1' varchar(4) CHARACTER SET utf8 NOT NULL heeft geen sortering opgegeven. Ik heb toen de volgende query uitgevoerd:
WIJZIG TABEL tabel1 WIJZIG col1 col1 VARCHAR(4) CHARACTER SET utf8COLLATE utf8_unicode_ci NOT NULL;
Dit loste mijn fout "Illegale mix van sorteringen" op. Ik hoop dat dit iemand anders kan helpen.