mysql使用convert函数对中文首字母排序2017-09-10 22:12
我们在使用select查询数据的时候,基本上都会对数据进行排序。
但是排序的字段一般都是数值型的。
使用order by也比较方便。
但是当我们查询的字段是中文的又该怎么办呢?
比如说我们有员工名字字段name,想要的结果是根据姓氏的拼音首字母来排序的时候。
不管是使用
ORDER BY s_name ASC
或是
ORDER BY s_name DESC
都无法得到想要的结果。
这个时候我们就可以使用convert()函数了。
升序排序
SELECT s_id,s_name FROM staff WHERE s_id<=12 ORDER BY CONVERT(s_name USING gb2312) ASC
结果
id name
12 柴进
7 邓飞
5 皇浦端
8 李应
3 李逵
2 林冲
4 卢俊义
9 秦明
10 宋江
6 吴用
11 武松
1 朱仝
倒序排序
SELECT s_id,s_name FROM staff WHERE s_id<=12 ORDER BY CONVERT(s_name USING gb2312) DESC
结果
id name
1 朱仝
11 武松
6 吴用
10 宋江
9 秦明
4 卢俊义
2 林冲
3 李逵
8 李应
5 皇浦端
7 邓飞
12 柴进
仔细对照看一下,结果是不是按照中文首字母进行排序的呢?
所以说convert函数是非常有用的,当然它的定义却是这样的:提供一个在不同字符集之间转换数据的方法。
对于字符集不是很了解的小伙伴可以看看字符集这里的教程。