mysql从每天8小时的时间段中选择结果

时间:2011-03-25 18:53:52

标签: mysql

嘿所有人。我有一个用户活动表,可以追溯到几年前。我需要选择每天搜索超过8小时的所有用户。有人可以给我任何关于如何用mysql做这个的建议吗?该表具有userid查询和search_date(datetime)

我可以按天分组用户activkty,但我确实需要所有搜索时间超过8小时的用户。

2 个答案:

答案 0 :(得分:2)

我猜你的意思是“找到所有在一天内搜索过两次,超过8小时的用户”。我认为这可能有用:

SELECT DISTINCT sr1.UserID, Date(sr1.Search_Date) AS Search_Date 
FROM SearchRecord sr1
JOIN SearchRecord sr2 
    ON sr1.UserID = sr2.UserID 
    AND Date(sr1.Search_Date) = Date(sr2.Search_Date) 
    AND sr1.Search_Date > (sr2.Search_Date + INTERVAL 8 HOURS)

这是假设我正确理解了您的问题并且我的MySQL语法是正确的(这些天我主要使用SQL Server)。

答案 1 :(得分:0)

你需要这样做一次吗?如在,它扔掉了吗?如果是这样的话,做一些缓慢运行但速度快的事情可能是你最好的选择。

我愿意打赌一些sql-guru可以在一个查询中找到一种方法来实现你想要的东西。

如果没有发生这种情况,我会把一个(php / java / python /汇编程序/挑选你的毒药)脚本/应用程序放在一起,只读取数据,过滤它,并吐出你的结果。快速而肮脏,完成工作。如果你发现它需要太长时间,那么就开始寻找加快脚本速度的方法,或者在一次查询中再回过头来。

SQL很适合很多事情,但有时候最好只用软件来做。 : - )

相关问题