关于spring:MySQL为什么不支持中文排序

37次阅读

共计 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 不反对中文排序,能够说对,也能够说不对。

正文完
 0