需求:根据某个字段按照某个时间进行不同排序
小于特定时间,要进行排序 ,以下命名为小组
大于特定时间,要另一种排序 ,以下命名为大组
小组和大组两者排序,那个在前那个在后也是一种排序,以下命名为 组序
SELECT
*
FROM
xx
ORDER BY
#这个是小组和大组之间的排序,小于当前时间的全部排在最前面
create_time < Now() DESC,
#这个是小于当前时间,命名为小组,小组里面的时间是进行降序
if(create_time <now(),create_time,0) DESC,
#这个是大于当前时间的,命名为大组,大组里面的时间是进行升序
if(create_time <now(),0,create_time) ASC
以下是根据当前时间进行排序分组:
加深蓝色的就是分割线
蓝色以下的都是大于当前时间的 命名为大组
蓝色以上的都是小于当前时间的,命名为小组
如果有什么问题,欢迎来讨论!