Os índices podem ser usados somente quando o agrupamento da expressão corresponde ao da coluna indexada.
Se a
COERCIBILITY da expressão é inferior ao da coluna (isto é 2 ), o agrupamento da coluna é convertido para o da expressão e o índice não é usado. Normalmente, os literais têm
COERCIBILITY de 4 e variáveis de usuário de 3 , então isso não deve ser um problema. No entanto, se você misturar diferentes agrupamentos em um
JOIN ou UNION , a ordem de conversão não é garantida. Neste caso, você deve fornecer um agrupamento explícito para a coluna que você está transmitindo (provavelmente, você deseja converter
latin1 para UTF8 ), e este deve ser o agrupamento da coluna para a qual você está transmitindo:SELECT *
FROM utf_table
JOIN latin_table
ON utf_column = latin_column COLLATE UTF8_GENERAL_CI