Php MySQL:每天统计到目前为止的数据库行数
我对SQL和PHP相当陌生,一直在为以下问题而头疼 我正在寻找一个SQL查询(或与PHP过滤相结合),它可以提供以下结果:基本上是每天添加或删除一行的结果+到目前为止该表中的行数 例如:Php MySQL:每天统计到目前为止的数据库行数,php,mysql,database,Php,Mysql,Database,我对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
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
要计算数据库中的条目,查询将为:
$query = SELECT COUNT(*) FROM `table`
此查询将选择表中的每个条目,并计算行数
要处理连接,可以使用或
我建议您使用PDO,因为mysql已被弃用,正如官方文档所说:
从PHP5.5.0开始,此扩展已被弃用,将来将被删除
代码如下所示:
<?php
/** PDOs or MYSQL_* CONNECT HERE **/
echo date("Y-d-M h:m:s")." | ".$count." so far since beginning";
?>
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
您可以使用GROUP BY查找今天的记录,使用子查询查找今天之前添加的行。比如说,
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);
但是它有点慢。当您使用此功能时,最好只在当天累积记录的值
编辑:显然,如果删除了一行,那么该行的历史记录就消失了。所以这可能不是你想要的
select count(*) cnt
, DATE(date_column) the_date
from tbl
group
by date with rollup
注意-如果有天没有任何条目,您将无法从此sql查询的结果集中获得该日期的行
修改器将添加一行,这将是所有行的计数。您可以标识该行,因为它的日期将为空值。或者,使用rollup省略
,只需自己对cnt列求和即可。那么,您想要在给定日期添加和删除的行总数吗?我想创建一个列表,列出某一天通常有多少行。例如,两天前有69排,昨天有74排,今天有75排。
select count(*) cnt
, DATE(date_column) the_date
from tbl
group
by date with rollup