MySQL一段时间内取一条数据的办法

SELECT  t.message,min(t.chat_time) AS time from 
          (SELECT c.message as message ,c.chat_time as chat_time  FROM chat_history_video c  where c.video_id=2291  union 
            SELECT f.message as message ,f.chat_time-1496148900 as chat_time  FROM chat_history f where f.room_id=100920 ) t  where t.chat_time > -1
     group by  FLOOR(t.chat_time/2)
ORDER BY time asc 


上面sql是取2秒内最小时间对应的纪录,通过group by的方式实现,通过group by  floor(chat_time/2) 取整进行筛选这一段时间内最小的时间,以及对应的纪录,MySQL默认是排序筛选的,条件需要加floor函数,否则就是按照时间点time进行查询一条的筛选了,就跟初衷一个时间段内取值筛选数据不符。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值