SQL小技巧,用多个条件进行排序

时间:2022-06-01 18:09:28

巧用order by

之前在学习和实践中,我们用order by 语句基本是指用一个条件进行判断,然而今天我在写课程设计的时候遇到了这么一个情况

现在后台需要返回一周7*12节课的数据,在表time中有84条相应的数据,字段date表示周一至周天,字段location表示这节课的位置。我按照从前到后的顺序,直接查询,返回。写安卓端的小伙伴从我这里获取了数据,之后他问我,能不能按第一节课,第二节课那样的顺序,他那边就俺横排渲染,我现在的数据顺序相当于竖着传过去了。当然,他也可以在那边对我发过去的84个对象重新排序。
我想了想,排序用order by,但是之前都是只有一个字段,这次的应该是用到了两个字段,date和location,没有这么写过,于是我翻了MYSQL的文档,查到order by 语句还可以对多个字段使用,于是我用了这么一条SQL就解决了问题

select * from time order by location,date;
解读一下:只有在location 值相同的时候,才对第二个字段的数据进行排序,默认为asc。

之后我又考虑,如果我们第一个字段希望是降序呢?测试一下,

select * from time order by location desc,date asc;

也就是我们在该字段后可以对升序的降序进行控制,当然如果有多个字段,用法应该也是一样的。

最后把图放上来,SQL技巧还有很多,作为后端开发人员,我们应当多多掌握