您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
mysql自定义排序(是当天时间的优先排序)
发布时间:2020-03-22 11:50:17编辑:雪饮阅读()
事情是这样的,我们有一个营销记录列表之前客户说是按今天时间优先排序
我以为只是按时间降序而已,这次客户说没有按今天时间排序,我去排查了下已经是这样的啊,和他沟通后才发现其实他的意思是按当天时间距离近的优先排序。
比如时间在今天之前或之后1-2天的肯定比在今天之前或之后4-5天的更优先,好吧,这种需求我是第一次遇到,好奇葩的说。
对于此我想过在php端使用冒泡排序,但是考虑到还要分页的问题,冒泡排序应用到程序中难免影响分页,所以改变思路在数据库端使用这种奇葩的排序。
哦,这里忘了,上面其实他说的是直接按当天时间优先,也就是说时间是当天的则优先排序。
那么对于这种需求,我们需要在数据库中时间列格式化为Ymd形式然后和当前时间的Ymd形式进行比对,那么这么一个小技巧就出来了。
幸好这里orderby对于虚字段支持排序,否则这里就有点难搞了
在之前做过几次sql优化时候发现虚字段在where中会报错,但是当时是在union内部,而这次没有union,不知道是否还有这个因素影响,不过这里暂时就不深究了。
关键字词:mysql,排序,自定义,当天时间,优先