我对sql和php还不太熟悉,一直在为下面的问题绞尽脑汁。
我正在寻找一个sql查询(或者与php过滤结合使用),它可以提供以下结果:基本上每天添加或删除一行的结果+该表中到目前为止的行数。
例子:

2012-10-08 09:52:08    |   1 so far since beginning
2012-12-04 15:07:56    |   2 so far since beginning
2012-12-10 09:18:02    |   3 so far since beginning

...


2013-06-06 09:50:13    |   67 so far since beginning
2013-06-13 13:46:41    |   70 so far since beginning
2013-06-17 14:42:39    |   69 so far since beginning
2013-06-19 14:19:26    |   74 so far since beginning
2013-07-05 13:21:45    |   75 so far since beginning

最佳答案

可以使用“分组依据”查找今天的记录,使用子查询查找今天之前添加的行。例如,

SELECT DATE(t.datefield) AS date, COUNT(*) AS records_this_day,
(SELECT COUNT(*) FROM mytable t2 WHERE t2.datefield < DATE(t.datefield)) AS records_before_this_day
FROM mytable t GROUP BY DATE(t.datefield);

你会得到这样的结果:
date        records_this_day records_before_this_day
2010-02-04  27               0
2010-02-05  2                27
2010-02-06  1                29
2010-02-07  1                30

但有点慢。当你使用它的时候,最好今天就把记录的价值累积起来。
编辑:很明显,如果一行被删除,那么该行的历史记录就消失了。所以这可能不是你想要的。

10-06 02:38