Passei meio dia procurando respostas para o temido erro "Mistura ilegal de agrupamentos". Descobri que algumas colunas em meu banco de dados não foram especificamente agrupadas utf8_unicode_ci . Parece que o mysql coletou implicitamente essas colunas utf8_general_ci .
Especificamente, a execução de uma consulta 'SHOW CREATE TABLE table1' gerou algo como o seguinte:
| tabela1 | CRIAR TABELA
table1
(id
int(11) NOT NULL,col1
varchar(4) CHARACTER SET utf8 NOT NULL,col2
int(11) NOT NULL, PRIMARY KEY (photo_id
,tag
)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci | Observe a linha 'col1' varchar(4) CHARACTER SET utf8 NOT NULL não tem um agrupamento especificado. Em seguida, executei a seguinte consulta:
ALTER TABLE tabela1 CHANGE col1 col1 VARCHAR(4) CHARACTER SET utf8COLLATE utf8_unicode_ci NOT NULL;
Isso resolveu meu erro "Mistura ilegal de agrupamentos". Espero que isso possa ajudar alguém por aí.