Jeg har brugt en halv dag på at søge efter svar på den frygtede fejl "Ulovlig blanding af sammenstillinger". Jeg fandt ud af, at nogle kolonner i min database ikke var specifikt sorteret utf8_unicode_ci . Det ser ud til, at mysql implicit har samlet disse kolonner utf8_general_ci .
Konkret udsendte kørsel af en 'VIS OPRET TABLE tabel1'-forespørgsel noget i stil med følgende:
| tabel1 | OPRET TABEL table1
(id
int(11) IKKE NULL,col1
varchar(4) CHARACTER SET utf8 NOT NULL,col2
int(11) IKKE NULL,PRIMÆR NØGLE (photo_id
,tag
)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci |
Bemærk linjen 'col1' varchar(4) CHARACTER SET utf8 NOT NULL har ikke angivet en sortering. Jeg kørte derefter følgende forespørgsel:
ALTER TABLE table1 CHANGE col1 col1 VARCHAR(4) CHARACTER SET utf8COLLATE utf8_unicode_ci IKKE NULL;
Dette løste min "Ulovlige blanding af sorteringer"-fejl. Håber dette kan hjælpe en anden derude.