(英語が下手で下手でごめんなさい) こんにちは!4 つの列を含む mysql データベースと、10 分ごとにユーザーのステータスを要求するスクリプトとしての cron ジョブがあります。データベース列:
ID UID STATUS CHECK_AT
- ID - 単なるシーケンス番号 (1、2、3 など)。スクリプトが DB に何かを書き込むたびに、数が増えます。
- UID - キー値。ユーザーのIDだとしましょう。すべての DB には、約 3 ~ 5 の異なる UID が含まれています
- STATUS - 値は 1 または 0 です。1 がオンライン、0 がオフラインであるとします。オンライン ステータスのタイムアウトは 10 分です。
- CHECK_AT - 2013-10-01 00:30:01 のようなスクリプト作業の日時
ロジック: 10 分ごとに、スクリプトはオンライン (1) またはオフライン (0) の特定の UID (他のテーブルに書き込まれている) をチェックしています。私;やろうとしていること: 1日の特定のUIDの要約オンライン時間を出力するには; 週; 月など
私はそれが初歩的であるべきだと思います
select count(id) from DB_NAME where date(check_at) = '2013-10-01';
一日の間
select count(uid) from user_activity where date(check_at) between '2013-10-01' and '2013-10-07';
数日間など。
しかし、私のスキルは、日付のオンライン時間 (ステータス = 1) のみをカウントする方法を知るには低すぎます。アドバイスをお願いできますか?