MySQL排序规则名称遵循以下约定:
排序规则名称以与其关联的字符集的名称开始,通常后面跟着一个或多个表示其他排序规则特征的后缀。例如,
utf8_general_ci
和latin1_swedish_ci
是融合的use utf8
和latin1
分别字符集。的二进制
字符集有一个排序规则,也被命名二进制
,没有后缀。特定于语言的归属包括语言名称。例如,
utf8_turkish_ci
和utf8_hungarian_ci
的字符排序use utf8
使用土耳其语和匈牙利语的规则集。整理后缀表示排序规则是区分大小写的,口腔敏感的或kana敏感(或其某种组合),或二进制。下表显示了用于表示这些特征的后缀。
对于未指定重音敏感性的非线性核对名称,它是通过案例灵敏度来确定的。如果排序规则不包含
_ai
或者_as
,_ci
顾名思义_ai
和_cs
顾名思义_as
。例如,latin1_general_ci
显式不区分大小写,隐式不区分重音,以及latin1_general_cs
明确区分敏感和隐含的口音敏感。为
二进制
束缚二进制
字符集,比较基于数字字节值。为_bin
非边区字符集的归一组合,比较基于数字字符代码值,它与多字节字符的字节值不同。有关差异之间的信息二进制
束缚二进制
字符集和_bin
非二进制字符集的排序,请参见第10.8.5节“二进制排列与_bin集合相比”。Unicode字符集的排序规则名称可能包括一个版本号,以指示排序规则所基于的Unicode排序规则算法(UCA)的版本。名称中没有版本号的基于UCA的排序使用version-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.0.txt.xt.)。
对于Unicode字符集,则
排序保留了5.1.24之前的原始顺序xxx
_general_mysql500_ci
在MySQL 5.1.24之前创建的表允许升级(Bug #27877)。xxx
_general_ci.