Mysql
 sql >> Database >  >> RDS >> Mysql

mysql con distinzione tra maiuscole e minuscole in utf8_general_ci

È 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