您的位置:首页 > 数据库 > MySQL

mysql对vachar排序的问题

2017-01-12 00:00 141 查看
今天遇到一个问题

mysql表中有一个用于排序的字段(sortNum)设置为varchar类型

然后排序就出现问题了

select * from kbs_firstleveloffice order by firstOffice,sortNum desc

结果:

7	内科	感染科	7
6	内科	血液科	6
5	内科	肾内科	5
3	内科	风湿免疫科	3
8	内科	神经内科	3
2	内科	心血管内科	2
4	内科	呼吸科	15
10	内科	老年科	10

明显不对啊,

貌似机制是这样的,如果是字符串的话,先排首字母,再排后面的

解决办法

1,修改字段为int类型

2,查询的时候字段+0

例如上面的查询码语句,修改完成后

select * from kbs_firstleveloffice order by id,(sortNum+0) desc

+0的目的就是转换成int类型。当然会有性能损耗,但是这个表一共就60条数据。

而且查询一次数据就存储到redis里面了,so,我选了第二种方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql 排序