Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql在同一个表上组合不同的count()_Mysql - Fatal编程技术网

mysql在同一个表上组合不同的count()

mysql在同一个表上组合不同的count(),mysql,Mysql,我的数据库包含一个“lastOnline”时间戳变量,当用户登录时,该变量会得到更新。我想用它来检索3个值 [The total amount of users][users online today][users online in the last hour]. 我可以分别做每一个陈述 SELECT count(u.id) AS usersTotal FROM user u SELECT count(u.id) AS usersDay FROM user u WHERE u.lastOn

我的数据库包含一个“lastOnline”时间戳变量,当用户登录时,该变量会得到更新。我想用它来检索3个值

[The total amount of users][users online today][users online in the last hour].
我可以分别做每一个陈述

SELECT count(u.id) AS usersTotal FROM user u

SELECT count(u.id) AS usersDay FROM user u
WHERE u.lastOnline >= now() - INTERVAL 1 DAY

SELECT count(u.id) AS usersHour FROM user u
WHERE u.lastOnline >= now() - INTERVAL 1 HOUR
但我很难将这三个问题合并到一个查询中

谢谢

您可以使用:

SELECT count(u.id) AS usersTotal 
      ,SUM(u.lastOnline >= now() - INTERVAL 1 DAY)  AS usersDay
      ,SUM(u.lastOnline >= now() - INTERVAL 1 HOUR) AS usersHour
FROM user u;
工作原理:


u.lastOnline>=now()-间隔1天
返回真(1)或假(0)。

完美。。。非常感谢!