mysql按进行中,即将开始,已结束排序,自定义字段值排序
mysql
编程技术
发布日期
2023-01-10
更新日期
2023-01-15
阅读次数 171
文章字数 475
mysql排序可以直接 order by case when,
如果小于开始时间则未开始,elseif 大于结束时间则已结束,剩下的就是进行中。
case when 给予不同的值就可以了。
如果希望排序时,并把该值取出,则在 field 字段再进行一次 case when,或先查字段再套一层外表。
例子:
select * from (select `id`,`type`,`fid`,`oid`,`title`,`startdate`,
`enddate`,case when
unix_timestamp(current_timestamp)<startdate then 0
when unix_timestamp(current_timestamp)>enddate then 2
else 1 end as 'stating' from `job_fairs`
WHERE 1 = 1 AND `id` in(13,16,12) AND `enddate`<=1673316337) as alias
order by FIELD(`stating`,1,0,2) asc LIMIT 0, 10;
如果给的值,不是升序或降序,可以使用 order by field(字段名称,自定义数字)
因为有时你可能已经把值确定了,后面排序要变化,则可以自定义field值排序。
文章作者: 朱丰华
文章链接: https://smart.52dixiaowo.com/blog/post-310.html
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。
mysql
发表评论
相关推荐