Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Solução de problemas de erro de mistura ilegal de agrupamentos no mysql


Isso geralmente é causado pela comparação de duas cadeias de ordenação incompatíveis ou pela tentativa de selecionar dados de ordenação diferente em uma coluna combinada.

A cláusula COLLATE permite especificar o agrupamento usado na consulta.

Por exemplo, o seguinte WHERE cláusula sempre dará o erro que você postou:
WHERE 'A' COLLATE latin1_general_ci = 'A' COLLATE latin1_general_cs

Sua solução é especificar um agrupamento compartilhado para as duas colunas na consulta. Aqui está um exemplo que usa o COLLATE cláusula:
SELECT * FROM table ORDER BY key COLLATE latin1_general_ci;

Outra opção é usar o BINARY operador:

BINARY str é a abreviação de CAST(str AS BINARY).

Sua solução pode ser algo assim:
SELECT * FROM table WHERE BINARY a = BINARY b;

ou,
SELECT * FROM table ORDER BY BINARY a;