Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

12.3.1 排序命名约定

MySQL 排序名称遵循以下约定:

  • 排序名称以关联的字符集名称开头,通常后跟一个或多个后缀,指示其他排序特征。例如,utf8mb4_0900_ai_cilatin1_swedish_ciutf8mb4latin1 字符集的排序,分别。 binary 字符集只有一个排序,也名为 binary,没有后缀。

  • 语言特定的排序包括语言代码或语言名称。例如,utf8mb4_tr_0900_ai_ciutf8mb4_hu_0900_ai_ci 按照土耳其语和匈牙利语的规则对 utf8mb4 字符集进行排序。utf8mb4_turkish_ciutf8mb4_hungarian_ci 类似,但基于 Unicode 排序算法的较早版本。

  • 排序后缀指示排序是否区分大小写、音调敏感或假名敏感(或某种组合),或二进制。下表显示了指示这些特征的后缀。

    表 12.1 排序后缀含义

    后缀 含义
    _ai 音调不敏感
    _as 音调敏感
    _ci 大小写不敏感
    _cs 大小写敏感
    _ks 假名敏感
    _bin 二进制

    对于非二进制排序名称,如果不指定音调敏感性,则由大小写敏感性确定。如果排序名称不包含 _ai_as,则 _ci 在名称中隐含 _ai_cs 在名称中隐含 _as。例如,latin1_general_ci 明确大小写不敏感且隐含音调不敏感,latin1_general_cs 明确大小写敏感且隐含音调敏感,utf8mb4_0900_ai_ci 明确大小写不敏感且音调不敏感。

    对于日本排序,_ks 后缀指示排序是假名敏感的,即区分片假名字符和平假名字符。日本排序没有 _ks 后缀的排序不区分片假名和平假名字符,认为它们相等。

    对于 binary 字符集的二进制排序,比较基于数字字节值。对于非二进制字符集的 _bin 排序,比较基于数字字符代码值,这些值对于多字节字符与字节值不同。关于 binary 字符集的二进制排序与非二进制字符集的 _bin 排序之间的差异,请参阅 第 12.8.5 节,“二进制排序与 _bin 排序的比较”

  • Unicode 字符集的排序名称可能包括版本号,以指示排序基于哪个 Unicode 排序算法(UCA)版本。没有版本号的 UCA 排序使用版本 4.0.0 UCA 权重键。例如:

  • 对于 Unicode 字符集,xxx_general_mysql500_ci 排序保留了原始 xxx_general_ci 排序的顺序,并允许在 MySQL 5.1.24 之前创建的表的升级(Bug #27877)。