项目中遇到需要根据某时间字段大于当前时间升序排列,小于当前时间降序排列的问题,最后解决sql语句如下:
SELECT * FROM live_schedule t
ORDER BY creatTime < NOW(),IF(creatTime < NOW(),0,creatTime),creatTime DESC
live_schedule:表名
creatTime:需要排序的时间
升级举例:状态值不为空的,按照update_time降序;状态值为空的,按时间降序。
ORDER BY state is null, if(state is null, state, 0), update_time DESC