或许都知道,MySQL不支持中文排序,这样的说法能够说对也能够说也不对。接下来咱们分析一下:sql
SHOW VARIABLES LIKE 'character_set%';
复制代码
能够看到字符集是utf8mb4,这个字符集是市面上比较使用很是多的字符集markdown
show collation like 'utf8mb4%';
复制代码
图中能够看到,utf8mb4有不少的排序规则,好比说通用的uft8mb4_general_ci,瑞典文比较规则utf8mb4_swedish_ci等等,可是就是没有中文的比较规则,这也是为何utf8mb4字符集不支持中文排序的缘由。oop
事例:编码
select * from area_code order by province_name;
复制代码
从图中能够看出,排序是不生效的spa
若是要按照中文排序。须要对字段编码进行转换,以下操做:3d
select * from area_code order by CONVERT(province_name USING gbk);
复制代码
能够看到,转成gbk方式就能够排序了,缘由是在gbk字符集下,排序规则支持中文排序,以下图: code
所以说,MySQL不支持中文排序,能够说对,也能够说不对。orm
本文由博客一文多发平台 OpenWrite 发布!排序