创建mysql数据的时候涉及到 character set 跟 collation两个配置项。为了弄懂大概是啥意思,查了些资料。
1. character set 字符集
数据库存储的字符集,客户端连接的时候也要用对应的字符集才能正确解析,不然会出现大量的乱码。
常见的字符集 utf8,unicode等。
2. collation 排序规则
如果选择的character set字符集是utf8,那么查询一下支持的排序规则
show collation like "utf8%"; # 查看支持的排序规则
# +----------------------------+---------+-----+---------+----------+---------+---------------+
# | Collation | Charset | Id | Default | Compiled | Sortlen | Pad_attribute |
# +----------------------------+---------+-----+---------+----------+---------+---------------+
# | utf8mb4_0900_ai_ci | utf8mb4 | 255 | Yes | Yes | 0 | NO PAD |
# | utf8mb4_0900_as_ci | utf8mb4 | 305 | | Yes | 0 | NO PAD |
# | utf8mb4_0900_as_cs | utf8mb4 | 278 | | Yes | 0 | NO PAD |
其中有个default显示当前字符集默认的排序规则
_ci 大小写不敏感
_cs 大小写敏感
_bin 用编码值进行比较
想要特殊的比较方式的时候要选用不同的