gpt4 book ai didi

mySQL 从单个表中为每个 user_id 选择时间戳接近的行

转载 作者:行者123 更新时间:2023-11-29 09:13:22 25 4
gpt4 key购买 nike

不知道如何最好地表达这一点,所以请耐心等待。我的表格(简化)如下:

  • id - 整数 - 自动递增
  • user_id - 整数
  • 时间戳 - 日期时间

我需要的是能够查询此表并为每个 user_id 选择 timestamp 列在预定义时间范围内(可能是任意的,但假设为 10 分钟)内的所有记录。例如,我想知道假设的 user_id 5 的条目位于“2011-01-29 03:00:00”,然后是“2011” -01-29 03:02:00”,但如果用户在“2011-01-29 03:00:00”搜索一次,然后在“2011-01-29 05:00:00”搜索下一次,则不会。这还需要捕获用户搜索超过 2 次的实例,每次搜索都在前一次的时间范围内。

作为背景,这是一个网站搜索表,我想知道用户搜索某些内容然后再次搜索的所有实例(大概是因为他们之前的搜索没有提供他们正在寻找的结果)。

我知道这可能比我想象的要简单,但我似乎无法弄清楚。如果需要,我可以澄清或提供其他信息。谢谢!

编辑:我对表中所有用户的搜索返回结果感兴趣,而不仅仅是用户 #5,并且还对不输入实际时间的搜索感兴趣。时间戳不应该是手动输入的内容,而应该查找每个用户的行,这些行之间的时间间隔在 10 分钟内。

最佳答案

SELECT distinct t1.user_id, t1.another_field, t1.another_field
FROM
table t1,
table t2
WHERE
t1.user_id = t2.user_id
AND abs(timestampdiff(MINUTE, t1.timestamp, t2.timestamp)) < 10

如果想进一步限制结果,可以添加

AND t1.user_id = any_number (or IN or between, etc)

要限制添加日期范围,

AND t1.timestamp BETWEEN A and B (or > or <)

关于mySQL 从单个表中为每个 user_id 选择时间戳接近的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4854696/

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