mysql对vachar排序的问题

2017-01-13 10:48:17来源:oschina作者:mifans人点击

今天遇到一个问题


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,我选了第二种方法。


最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台