gpt4 book ai didi

mysql - 仅当它们之间的差异为 10 秒时如何获取记录

转载 作者:行者123 更新时间:2023-11-29 00:26:21 24 4
gpt4 key购买 nike

我需要能够使用 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 查询表单时遇到困难,我将不胜感激任何帮助!

最佳答案

在 +/- 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

SQLFiddle demo

积分:

  • 这通过连接到自身找到附近的行
  • 如果行仅在 10 秒内成对出现(10 秒内不超过两行),则可以省略 distinct 关键字
  • 如果索引在 db_add_date 上,由于查找时间间隔决定连接行的方式,这将执行良好且可扩展

关于mysql - 仅当它们之间的差异为 10 秒时如何获取记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18733069/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com