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

MySQL tratta ÅÄÖ come AAA?

Sì, questo è un comportamento standard nelle regole di confronto Unicode non specifiche per la lingua.

9.1.13.1. Set di caratteri Unicode

Vedi anche Esempi dell'effetto di confronto

Devi farlo

  • usa un confronto che non ha questa "caratteristica" (vale a dire utf8_bin , ma questo ha altre conseguenze)

  • usa un confronto diverso solo per la query . Questo dovrebbe funzionare:

     select * from topics where name='Harligt' COLLATE utf8_bin;
    

diventa più difficile se vuoi fare un LIKE senza distinzione tra maiuscole e minuscole ma non avere il Ä = A conversione dell'umlaut. Non conosco regole di confronto MySQL che non facciano distinzione tra maiuscole e minuscole e non esegua questo tipo di conversione di dieresi implicita. Se qualcuno ne conosce uno, sarei interessato a saperlo.

Correlati: