1. MySQL 排序规则
1.1. 什么是排序规则
在新建 MySQL 数据库或表的时候经常会选择字符集和排序规则。数据库用的字符集大家都知道是怎么回事, 那排序规则是什么呢?
排序规则: 是指对指定字符集下不同字符的比较规则。其特征有以下几点:
- 两个不同的字符集不能有相同的排序规则
- 两个字符集有一个默认的排序规则
- 有一些常用的命名规则。如
_ci
结尾表示大小写不敏感 (caseinsensitive),_cs
表示大小写敏感 (case sensitive),_bin
表示二进制的比较 (binary).
utf-8 有默认的排序规则:
命令: SHOW CHARSET LIKE 'utf8%';
区别:
utf8_general_ci
不区分大小写, 这个你在注册用户名和邮箱的时候就要使用。utf8_general_cs
区分大小写, 如果用户名和邮箱用这个 就会照成不良后果utf8_bin
: 字符串每个字符串用二进制数据编译存储。 区分大小写, 而且可以存二进制的内容utf8_general_ci
校对速度快, 但准确度稍差。utf8_unicode_ci
准确度高, 但校对速度稍慢。
1.2. 对比
utf8_general_ci
不区分大小写,utf8_general_cs
区分大小写utf8_bin
:co