本文共 529 字,大约阅读时间需要 1 分钟。
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进行查询一条的筛选了,就跟初衷一个时间段内取值筛选数据不符。
转载地址:http://aqadi.baihongyu.com/