代码之家  ›  专栏  ›  技术社区  ›  Adam

MySQL没有像我一样对待±吗?

  •  0
  • Adam  · 技术社区  · 6 年前

    我在MySQL 5.7.27中有一个用户表 utf8mb4_unicode_ci 排序规则。

    不幸的是,“”不是线程化的,例如,下面的查询将找不到 Yılmaz

    select id from users where name='Yilmaz';
    

    我对其他元音变音没有问题 ä a . 例如,这两个查询给出完全相同的结果。

    select id from users where name='Märie';
    
    select id from users where name='Marie';
    

    我不能简单地取代 ı 通过 i 还有搜索,因为那样我就找不到有这个名字的用户了 Y±L最大 .

    以下是有关unicode字母的更多信息:

    code    | glyph |decimal |  html   | description
    U+0131  |  ı    |305     |ı |  Latin Small Letter dotless I
    U+0069  |  i    |105     |-        |  Latin Small Letter I
    
    0 回复  |  直到 6 年前
        1
  •  2
  •   Rick James diyism    6 年前

    http://mysql.rjweb.org/utf8_collations.html ,我看到了 ı=i 在3个排序规则中:utf8_general_ci,utf8_general_mysql500_ci,utf8_turkish_ci。但是,对于土耳其语的整理, I=ı 在所有其他排序规则中,排在其他重音I之前 ı 毕竟我是,好像它是一个单独的信。

    同时 İ=I

    MySQL8.0的应用使情节更加丰富。utf8mb4_tr_0900_ai_ci(仅限)有以下订单:

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

    同时 ä=Ä 在大多数排序规则中,它们与大多数其他口音的A相匹配(包括土耳其语)。

    同时

    在那个环节。。。唯一的角色 æ 与两个字母的排序相同 ae 进行一些整理。表示为: Aa ae=æ az . 在另一半的排序规则中,字符 被视为一个单独的字母;这表示它在后面 az 以前呢 b zz 用于斯堪的纳维亚语校勘。例如,这种单独的字母概念有时适用于字母对 cs (匈牙利语)和 ch (西班牙语)。