mysql查询根据不同的键和时间戳检索行

时间:2011-05-19 03:22:03

标签: php mysql

我们有一个“交易”表,记录了我们网站上发生的各种事件。特别需要在其上运行夜间“清理”过程。这是我的专栏(简化):

id, txName, brandName, visitorID, txDate

这是我想要检索的内容(散文):

  

“{1}}来自txName's的{​​{1}}在过去6周内未记录”READ“vistiorID's(基于txName)特定txDate 1}}。完全可能(并且可能){6}窗口期间brandName将对多个visitorID“阅读”txName's。我们只有5 brandName所以我完全满足于为单个brandName's构建流程并重复5次。

我的大脑只能进行2次MySQL SELECT查询(6周之前的记录,6周内的记录),然后循环几次以获得一系列必须处理的最终记录。但我确信有一种WAAAAY更有效的方式,我只是不明白。

我希望这是有道理的...谢谢任何可以提供帮助的人。我认为让我搞砸的部分是试图选择那些没有记录交易的人,而不是拥有的人

1 个答案:

答案 0 :(得分:0)

您可以尝试以下方式:

  SELECT DISTINCT(visitorID) 
    FROM transactions 
   WHERE txName = "READ" 
     AND txDate <= '$6weeksago'   
GROUP BY brandName

其中$6weeksago是在PHP中创建的变量,用于表示所需格式(not sure if it was a date or Unix timestamp)中截止6周的时间。

我没有测试过这个,因为我没有桌子,但我认为这就是你所追求的!