2012-04-29 2 views
4

나는 PHP & mysql을 사용하여 웹 서비스를 구축 중이며 각 apikey의 요청을 (y) 시간 내에 (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에서 작동하는 대답을 부탁드립니다. 또한 가능하다면 가장 빠른 구현 중 하나가 자동 완성 기능을 제공하므로 로그 테이블이 상당히 커집니다.

덕분에 당신이 PHP를 사용하여 원하는 순간에

답변

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

덕분에, 나는이 방법을 선호합니다. – Graham

0

계산의 타임 스탬프는 다음 MySQL의 쿼리에 전달합니다. 는 SQL 영역에서 모든 것을 유지로

$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; 
관련 문제