在开发过程中碰到的一个需求。要求未来可预约的信息,按倒叙显示在列表前边,已经结束预约的信息,按倒序往后排。
单纯一个orderby 条件解决不了问题,需要多个。
解决方案:
order by (table.end_time > now()) desc,table.end_time asc
这样,未来的信息按倒叙排在了前面,已结束的信息按倒叙显示在未来信息的后面。
相当于用order by (table.end_time > now()) 先区分成了两组:未来的信息和已结束的信息。
然后每组再按照时间排序。
欢迎访问我的技术群425783133