0

(抱歉英语不好,技能不好)你好!我有一个 mysql 数据库,其中包含四列和一个 cron 作业作为脚本,它每 10 分钟请求一次用户的状态。数据库列:

ID UID STATUS CHECK_AT
  • ID - 只是一个序列号(1、2、3 等)。每次脚本将某些内容写入数据库时​​,数字都会增加。
  • UID - 键值。假设它是用户的 ID。所有数据库包含大约 3-5 个不同的 UID
  • STATUS - 值为 1 或 0。假设 1 在线,0 离线。在线状态超时为 10 分钟。
  • CHECK_AT - 脚本工作的时间和日期,例如 2013-10-01 00:30:01

逻辑:每 10 分钟脚本检查在线 (1) 或离线 (0) 的特定 UID(写在其他表中)。我正在尝试做的事情:输出特定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)。请给我一些建议好吗?

4

1 回答 1

0

WHERE您可以在子句中添加您的条件,例如:

select count(id) from your_table where date(check_at) = '2013-10-01' AND status = 1;

或者

select count(uid) from user_activity where 
    date(check_at) between '2013-10-01' AND '2013-10-07'
    AND status = 1;
于 2013-10-01T09:23:13.343 回答