因为数据库中可以设定表的编码格式,不同编码格式下,中文的排序有区别,下面分别介绍常用编码下的排序方法。
1、如果数据表的某字段的字符编码是 utf8_general_ci,排序写法:
ORDER BY CONVERT(表别名.字段名 USING gbk) COLLATE gbk_chinese_ci ASC;
例子
SELECT * FROM mg_clinic mc ORDER BY CONVERT(mc.`CLNAME` USING gbk) COLLATE gbk_chinese_ci ASC;
这种写法排序会出现:符号-数字-英文字母-中文拼音顺序排序
2、如果数据表的某字段的字符编码是 latin1_swedish_ci,排序写法:
order by birary(表别名.字段名) asc ;
3、如果数据表的某字段的字符编码是 GBK,排序写法:
直接排序就行,因为 GBK 编码本来就是排序汉字首字母进行排序的
order by 表别名.字段名asc;
参考:
mysql根据汉字首字母排序的方法_mysql 中文首字母排序_马万明的博客-CSDN博客
mysql 中文字段排序( 按拼音首字母排序) 的查询语句 - 加油_张的个人空间 - OSCHINA - 中文开源技术交流社区
MySQL汉字字段按拼音排序_stephenxu111的博客-CSDN博客
mysql 根据汉字首字母排序_sql 汉字一二三排序_天才小小布的博客-CSDN博客
来源地址:https://blog.csdn.net/Ying_ph/article/details/132054851