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

MySQL behandler jeg ikke som jeg?

Med henvisning til http://mysql.rjweb.org/utf8_collations.html , jeg kan se, at ı=i i 3 samlinger:utf8_general_ci, utf8_general_mysql500_ci, utf8_turkish_ci. Men for den tyrkiske kollation, I=ı sorterer før andre accentuerede jeg. I alle andre sorteringer ı sorterer trods alt jeg'er, som om det behandles som et særskilt brev.

I mellemtiden İ=I i alle sammenstillinger undtagen utf8_turkish_ci.

Plottet bliver tykkere med MySQL 8.0. utf8mb4_tr_0900_ai_ci (kun) har denne rækkefølge:

I=Ì=Í=Î=Ï=Ĩ=Ī=Ĭ=Į=ı sort before  i=ì=í=î=ï=ĩ=ī=ĭ=į=İ

I mellemtiden ä=Ä og de matcher de fleste andre accent A'er for de fleste sammenstillinger (inklusive de tyrkiske).

Nederste linje:Det ser ud til, at utf8[mb4]_general_ci er den eneste sammenstilling i 5.7 eller 8.0, der altid vil behandle et prikløst-i (eller prikket-I) lig med et 'almindeligt i/I og på samme tid ignorere omlyd.

Advarsel:De "generelle" sammenstillinger tester ikke mere end ét tegn ad gangen. Det vil sige, en "ikke-mellemrumlyd" plus en vokal vil ikke blive behandlet som lig med kombinationen.

I det link... Det ene tegn æ er sorteret på samme måde som de to bogstaver ae for nogle sammenstillinger. Det er angivet med:Aa ae=æ az . I omkring halvdelen af ​​de andre sammenstillinger er tegnet æ behandles som et særskilt brev; dette er angivet ved, at det står efter az og før b . Eller endda efter zz for skandinaviske sammenstillinger. Dette separate bogstavbegreb gælder nogle gange for bogstavpar, for eksempel cs (ungarsk) og ch (traditionelt spansk).




  1. Fatal fejl:Kald til udefineret metode mysqli::bind_param() i

  2. MySQL Spørgsmål om planlægning

  3. Sådan viser du sorteringen af ​​en kolonne i MySQL

  4. Sådan INSERT Hvis række ikke eksisterer (UPSERT) i MySQL