MySQL 排序规则名称遵循以下约定:
归类名称以与其关联的字符集的名称开头,通常后跟一个或多个表示其他归类特征的后缀。例如,
utf8_general_ci
和 分别是和 字符集latin1_swedish_ci
的排序规则 。字符集 有一个排序规则,也名为 ,没有后缀。utf8
latin1
binary
binary
特定于语言的归类包括语言名称。例如,分别使用土耳其语
utf8_turkish_ci
和 匈牙利语的规则为字符集utf8_hungarian_ci
对字符进行排序 。utf8
排序规则后缀指示排序规则是区分大小写、区分重音还是区分假名(或它们的某种组合)或二进制。下表显示了用于指示这些特性的后缀。
对于未指定区分重音的非二进制排序规则名称,由区分大小写决定。如果排序规则名称不包含
_ai
or_as
,_ci
in the name implys_ai
和_cs
in the name implies_as
。例如,latin1_general_ci
显式不区分大小写,隐式不区分重音,显式区分大小写,隐式区分latin1_general_cs
重音。对于字符集的
binary
排序规则binary
,比较是基于数字字节值。对于_bin
非二进制字符集的排序规则,比较基于数字字符代码值,这与多字节字符的字节值不同。有关字符集排序规则与非二进制字符集排序规则之间差异的信息 ,binary
请 参阅第 10.8.5 节,“二进制排序规则与 _bin 排序规则的比较”。binary
_bin
Unicode 字符集的归类名称可能包含版本号,以指示归类所基于的 Unicode 归类算法 (UCA) 的版本。名称中没有版本号的基于 UCA 的归类使用版本 4.0.0 UCA 权重键。例如:
utf8_unicode_520_ci
基于 UCA 5.2.0 权重键 ( http://www.unicode.org/Public/UCA/5.2.0/allkeys.txt )。utf8_unicode_ci
(没有命名的版本)基于 UCA 4.0.0 权重键(http://www.unicode.org/Public/UCA/4.0.0/allkeys-4.0.0.txt)。
对于 Unicode 字符集,
归类保留原始归类的 5.1.24 之前的顺序,xxx
_general_mysql500_ci
并允许升级在 MySQL 5.1.24 之前创建的表(错误#27877)。xxx
_general_ci