sql >> Databasteknik >  >> RDS >> Mysql

MySQL behandlar inte jag som jag?

Med hänvisning till http://mysql.rjweb.org/utf8_collations.html , jag ser att ı=i i 3 samlingar:utf8_general_ci, utf8_general_mysql500_ci, utf8_turkish_ci. Men för den turkiska sammanställningen, I=ı sorterar före andra accentuerade jag. I alla andra sorteringar ı sorterar trots allt jag, som om det behandlas som ett separat brev.

Under tiden İ=I i alla sorteringar utom utf8_turkish_ci.

Handlingen tjocknar med MySQL 8.0. utf8mb4_tr_0900_ai_ci (endast) har denna ordning:

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

Under tiden ä=Ä och de matchar de flesta andra accentuerade A:n för de flesta kollationer (inklusive de turkiska).

Sammanfattning:Det verkar som att utf8[mb4]_general_ci är den enda sammanställningen i 5.7 eller 8.0 som alltid kommer att behandla ett prickfritt-i (eller prickfritt-I) lika med ett 'vanligt i/I och samtidigt ignorera omljud.

Varning:De "allmänna" sammanställningarna testar inte mer än ett tecken åt gången. Det vill säga, en "omljud utan mellanrum" plus en vokal kommer inte att behandlas som lika med kombinationen.

I den länken... Det ena tecknet æ sorteras på samma sätt som de två bokstäverna ae för vissa sammanställningar. Det indikeras av:Aa ae=æ az . I ungefär hälften av de andra sammanställningarna visas tecknet æ behandlas som ett separat brev; detta indikeras av att det står efter az och före b . Eller till och med efter zz för skandinaviska sammanställningar. Detta separata bokstavsbegrepp gäller ibland bokstavspar, till exempel cs (ungerska) och ch (traditionell spanska).




  1. listunagg funktion?

  2. Hur krypterar man lösenordet i Oracle?

  3. VÄLJ distinkta värden för flera rader med samma ID

  4. Android anpassad kalender och påminnelse