É melhor usar o
utf8_bin
collation porque, embora não seja possível em UTF-8, no caso geral é teoricamente possível (como acontece com UTF-16) para o mesmo string a ser representada por diferente codificações, que uma comparação binária não entenderia, mas um agrupamento binário sim. Conforme documentado em Conjuntos de caracteres Unicode
:Portanto, se as comparações envolvendo essas colunas sempre diferencia maiúsculas de minúsculas, você deve definir o agrupamento da coluna para
utf8_bin
(para que eles permaneçam sensíveis a maiúsculas e minúsculas, mesmo que você esqueça de especificar o contrário em sua consulta); ou se apenas consultas particulares diferenciam maiúsculas de minúsculas, você pode especificar que o utf8_bin
collation deve ser usado usando o COLLATE
palavra-chave:SELECT * FROM table WHERE id = 'iSZ6fX' COLLATE utf8_bin