mysql同一个表按当前时间分段分开排序

来源:互联网 发布:cda数据分析师考试时间 编辑:程序博客网 时间:2024/06/05 06:13

在开发过程中碰到的一个需求。要求未来可预约的信息,按倒叙显示在列表前边,已经结束预约的信息,按倒序往后排。

单纯一个orderby 条件解决不了问题,需要多个。

解决方案:

order by (table.end_time > now()) desc,table.end_time asc

这样,未来的信息按倒叙排在了前面,已结束的信息按倒叙显示在未来信息的后面。

相当于用order by (table.end_time > now()) 先区分成了两组:未来的信息和已结束的信息。

然后每组再按照时间排序。

欢迎访问我的技术群425783133

0 0
原创粉丝点击