热线电话:13121318867

登录
2019-03-16 阅读量: 675
sql语句 按照比赛的状态排序

问题描述:

比如我有一个比赛表,里面存储着好多个比赛,每个比赛都有开始时间和结束时间。我的sql语句怎么写,能按照比赛的状态进行中, 即将开始, 已结束,这三个状态先后展示呢?

如果涉及到分页该怎么实现呢?

解决方法:

比如有上面的表,林丹的已经结束,李宗伟的正在进行,谌龙的还没有开始,

可以写下面的语句:

使用了MySQL的 if 判断,当然如果更复杂也可以使用case语句

select if (now() between start_time and end_time, 2if ( 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.0000
4
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子