2012-01-26 3 views
0

MySQL을 사용하여 이번 달에 새로 추가 된 행의 합계를 수집하려고합니다.과거에없는 행 수를 얻는 방법

id, gamer_id, date 

내가 새로운 게이머들이 이번 달에 등록하지만, 이전 달 동안 그들에 대한 기록이없는 얼마나 많은 확인하려면 :

나는이 테이블을 가지고있다.

어떻게하면됩니까?

mysql_num_rows(
    mysql_query(
     "SELECT id FROM gamers WHERE date >= '2012-01-01' GROUP BY gamer_id" 
    ) 
); 

하지만 여기서는 IF를 수행하는 방법을 알고 있습니다. 누군가 나를 기쁘게 도와 줄 수 있습니까? date가 예약어이기 때문에

+0

, 나는 다음, 모든 행을 잡아'한 strtotime를 사용하여 시간에 날짜를 변환하는 것입니다()'. 그러나 아마 더 우아한 해결책이있을 것입니다. –

+0

귀하의 의견과 같으므로, 이것은 사용자 정보가있는 귀하의 테이블이 아닙니다. 등록 된 날짜는 귀하의 "사용자"테이블 (또는 사용자가 전화하는 모든 것)에 저장되지 않습니다. 액세스 테이블의 일종 인 것처럼 보이는 것에 의존하는 것이 아니라 가장 우아한 해결책이 될 것입니다. – jprofitt

답변

1
list($cnt) = mysql_fetch_row(mysql_query(
    "SELECT COUNT(`id`) FROM `gamers` WHERE `date` >= '2012-01-01'" 
)); 

은 특히 그것은 당신의 열 이름 주위에 역 따옴표를 사용하는 것이 중요합니다.

편집 : 정말 귀하의 상황을 이해하고 있지 않다

당신이 당신의 데이터베이스 구조를 수정해야 할 수도 있습니다처럼 들린다. 어쨌든,이 쿼리는 당신이 찾고있는 무엇을해야 : 내가 MySQL을 매우 잘 아는 아니다으로

list($cnt) = mysql_fetch_row(mysql_query(
    "SELECT COUNT(`id`) FROM `gamers` WHERE MIN(`date`) >= '2012-01-01'" GROUP BY `gamer_id` 
)); 
+0

그래, 게이머가 지난 달에도있을 수 있기 때문에 내가 얻는 숫자는 좋지 않습니다. 새로운 게이머만을위한 숫자를 원합니다. – Hanan

+0

그래서 1) 게이머는 다른 날짜에 여러 번 나타날 수 있으며 2) 지정된 날짜 이전에 항목이없는 경우에만 계산되기를 원하십니까? –

+0

예! 정확히! .. – Hanan

관련 문제