2019-03-16
阅读量:
675
sql语句 按照比赛的状态排序
问题描述:
比如我有一个比赛表,里面存储着好多个比赛,每个比赛都有开始时间和结束时间。我的sql语句怎么写,能按照比赛的状态进行中
, 即将开始
, 已结束
,这三个状态先后展示呢?
如果涉及到分页该怎么实现呢?
解决方法:

比如有上面的表,林丹的已经结束,李宗伟的正在进行,谌龙的还没有开始,
可以写下面的语句:
使用了MySQL的 if 判断,当然如果更复杂也可以使用case语句
select if (now() between start_time and end_time, 2, if ( now()>end_time, 1,3)) as zt FROM`match`.badminton order by zt desc limit 0,10;
zt表示状态,1表示结束,2表示正在进行,3表示还没有开始。
这条SQL语句的逻辑是:
如果当前时间介于开始和结束之间,那就是进行中[2]
否则再次判断,如果当前时间大于结束时间,那就是已经结束[1]
再否则,就是剩下的那种情形还没有开始[3]
分页直接使用limit就可以了。






评论(0)


暂无数据
推荐帖子
0条评论
0条评论
1条评论