如何获取自当月开始以来添加的记录数

时间:2012-04-29 10:34:40

标签: mysql sql web-services count database-performance

我正在使用php& amp建立一个web服务mysql,并希望在(y)时间内将每个apikey的请求限制为(x)数量。

为了实现这一点,我使用sql语句计算在一段时间内从每个apikey添加到日志中的记录,如下所示:

SELECT COUNT(*) FROM ws_account_log WHERE account_log_account_id='1' AND account_log_timestamp > DATE_SUB(now(), INTERVAL 1 HOUR)

这给了我一个滚动的每小时计数,这很好,但我希望每月计数有一个硬限制。例如,自当月第一天00:00以来已添加了多少行。

我已经看过使用存储过程和不同语法的示例,我想要一个适用于MYSQL的答案。此外,如果可能,作为其中一项服务的最快实现提供自动完成功能,因此日志表相当大。

由于

2 个答案:

答案 0 :(得分:5)

SELECT COUNT(*)
FROM ws_account_log
WHERE
      account_log_account_id='1'
  AND account_log_timestamp >= SUBDATE(CURDATE(), DAYOFMONTH(CURDATE())-1)

答案 1 :(得分:0)

计算您想要使用php的时刻,然后将其传递给mysql查询。

$date = mktime(0, 0, 0, date("n"), 1, date("Y"));
$mysqldate = date( 'Y-m-d H:i:s', $date );
$query = " ... AND account_log_timestamp > ".$mysqldate;