2012-01-26 10 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を行う方法はわかりませんが、誰かが私を助けてくれますか?特に

+0

が、私はその後、すべての行をつかむ 'のstrtotimeを使用して、時間に日付を変換します()'。しかし、おそらくより洗練されたソリューションがあります。 –

+0

あなたのコメントのように聞こえるので、これはユーザ情報を持つあなたのテーブルではありません。登録された日付はあなたの "users"テーブル(またはあなたがそれを呼び出すもの)に保存されていません。これは、アクセステーブルのようなものに頼るよりも、最も洗練されたソリューションになります。 – jprofitt

答えて

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

dateが予約語であるため、それは、あなたの列名の周りのバッククォートを使用することが重要です。

EDIT:

私は本当にあなたの状況を理解していないよ、あなたのデータベース構造を修正する必要があるかもしれませんように、それが聞こえます。とにかく、このクエリは、あなたが探しているものでなければなりません:私は、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

関連する問題