简介
在使用Docker玩mysql 8.0时,发现默认的character collation变成了不认识的utf8mb4_0900_ai_ci,对相应问题做了一点搜索,记录如下。
说明
以utf8mb4_0900_ai_ci为例,它是一个若干有意义的字段合并的collation名称。分解如下:
uft8mb4指使用UTF-8字符集,每个字符最多使用4 byte来存储。0900指Unicode字符校对算法版本。Unicode字符校对算法(Unicode Collation Algorithm) 是用来按照Unicode标准比较两个字符串的算法。ai指重音符号(Accent)不敏感,比如 e, è, é, ê and ë 在排序时均认为是同一字符。与其相对的是asci指大小写(Case)不敏感。排序时a和A不做区分。与其相对的是as
其他还有language identifer以及_bin标识,可以参考如下网站
展示所有Collation
1 | SHOW COLLATION |
如何确定当前表的Collation?
可以查询information_schema表
1 | SELECT |