我需要能够找到所有带有sql的记录,只要时间少于10秒。
让我举一个例子,你可以看到我需要的东西:
id method db_add_date
1 5 2013-09-11 00:42:12
2 6 2013-09-11 00:42:25
3 4 2013-09-11 12:02:33
4 7 2013-09-11 12:02:35
5 1 2013-09-11 12:10:54
6 2 2013-09-11 12:10:57
输出如下:
id method db_add_date
3 4 2013-09-11 12:02:33
4 7 2013-09-11 12:02:35
5 1 2013-09-11 12:10:54
6 2 2013-09-11 12:10:57
因为#3& #4有差异2秒& #5& #6差异3秒
我很难将它放入SQL查询表单中,我将不胜感激任何帮助!
答案 0 :(得分:1)
在+/- 10秒的时间戳范围内加入表格,确保不加入自身:
select distinct t1.*
from mytable t1
join mytable t2
on t2.db_add_date between subdate(t1.db_add_date, interval 10 second)
and adddate(t1.db_add_date, interval 10 second)
and t2.id != t1.id
点数:
distinct
关键字db_add_date
上,由于查找时间间隔对连接行的确定方式,这将表现良好并且可以很好地扩展