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