共计 517 个字符,预计需要花费 2 分钟才能阅读完成。
前言
或者都晓得,MySQL 不反对中文排序,这样的说法能够说对也能够说也不对。接下来咱们剖析一下:
首先执行命令,查看编码集:
SHOW VARIABLES LIKE 'character_set%';
能够看到字符集是 utf8mb4,这个字符集是市面上比拟应用十分多的字符集
咱们再看下,这个字符集对应的排序规定有哪些?
show collation like 'utf8mb4%';
图中能够看到,utf8mb4 有很多的排序规定,比如说通用的 uft8mb4_general_ci, 瑞典文比拟规定 utf8mb4_swedish_ci 等等,然而就是没有中文的比拟规定,这也是为什么 utf8mb4 字符集不反对中文排序的起因。
事例:
select * from area_code order by province_name;
从图中能够看出,排序是不失效的
如果要依照中文排序。须要对字段编码进行转换,如下操作:
select * from area_code order by CONVERT(province_name USING gbk);
能够看到,转成 gbk 形式就能够排序了,起因是在 gbk 字符集下,排序规定反对中文排序,如下图:
因而说,MySQL 不反对中文排序,能够说对,也能够说不对。
正文完