Jag har ägnat en halv dag åt att leta efter svar på det fruktade felet "Olaglig blandning av sammanställningar". Jag upptäckte att vissa kolumner i min databas inte var specifikt sorterade utf8_unicode_ci . Det verkar som att mysql implicit har sammanställt dessa kolumner utf8_general_ci .
Närmare bestämt, att köra en "VISA CREATE TABLE table1"-fråga gav något i stil med följande:
| tabell1 | SKAPA TABELL table1
(id
int(11) NOT NULL,col1
varchar(4) CHARACTER SET utf8 NOT NULL,col2
int(11) INTE NULL, PRIMÄRNYCKEL (photo_id
,tag
)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci |
Notera raden 'col1' varchar(4) CHARACTER SET utf8 NOT NULL har ingen angiven sortering. Jag körde sedan följande fråga:
ALTER TABLE table1 CHANGE col1 col1 VARCHAR(4) CHARACTER SET utf8COLLATE utf8_unicode_ci NOT NULL;
Detta löste mitt "Olagliga blandning av sammanställningar"-fel. Hoppas detta kan hjälpa någon annan där ute.