È meglio usare utf8_bin
confronto perché, anche se non è possibile in UTF-8, nel caso generale è teoricamente possibile (come accade con UTF-16) per lo uguale stringa da rappresentare con different codifiche, che un confronto binario non capirebbe ma una confronto binario lo farebbe. Come documentato in Set di caratteri Unicode
:
Pertanto, se i confronti che coinvolgono queste colonne saranno sempre fai distinzione tra maiuscole e minuscole, dovresti impostare le regole di confronto della colonna su utf8_bin
(in modo che rimangano case sensitive anche se dimentichi di specificare diversamente nella tua richiesta); oppure se solo particolari query fanno distinzione tra maiuscole e minuscole, puoi specificare che utf8_bin
le regole di confronto devono essere utilizzate utilizzando COLLATE
parola chiave:
SELECT * FROM table WHERE id = 'iSZ6fX' COLLATE utf8_bin