我的数据库包含一个“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
但我无法将其中 3 个加入/联合到一个查询中
谢谢
最佳答案
你可以使用:
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() - INTERVAL 1 DAY
返回 true(1) 或 false(0)。
关于mysql 在同一个表上组合不同的 count(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47613382/