或許都知道,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 發佈!排序