需求
按照直播中、预告、回放、已结束的顺序展示。
·直播中按照直播时间倒序排序,最近直播的展示在第一个。
·预告按照直播时间正序排序,最近的直播预告展示在最后一个。
·回放按直播时间倒序排序,最近直播的展示在第一个。
·已结束按直播时间倒序排序,最近直播的展示在第一个。
表结构
语句
SELECT
id,
start_time,
case
when `status`=0 THEN '预告'
when `status`=1 THEN '直播'
when `status`=2 THEN '结束'
when `status`=3 THEN '回放'
end as `status`
FROM
tmp_test
ORDER BY
field( `status`, 1,0,3,2 ) , -- 现根据字段内容设置顺序
CASE when `status` = 0 THEN start_time end , -- 如果是预告按时间升序
CASE when `status` != 0 THEN -start_time end ; -- 如果不是预告按时间倒序
结果