我有一个包含以下行的数据库:SearchTerm |用户名 |日期 |历史编号
我需要获取 userId=userid 的过去 24 小时内每小时的条目数。
到目前为止,我有以下内容:
$stmt = $conn->prepare("SELECT historyId FROM webHistory WHERE date >= now() - INTERVAL 1 DAY GROUP BY HOUR(date) AND userId=?");
我现在有点卡住了,我该如何获取每个小时组的 num_rows?我考虑过使用 count(*),但这是正确的方法吗?如果是这样,我该怎么做呢?
最后,对于移动显示,我需要每两个小时分组一次,这可能吗,因为我似乎只能找到关于 HOUR() 的文档,可能是 DATEPART()?
最佳答案
你只需要count(*)
:
SELECT HOUR(date) as hr, historyId, COUNT(*) as num_rows
FROM webHistory
WHERE date >= now() - INTERVAL 1 DAY AND userId=?
GROUP BY HOUR(date);
userId
的条件放在 where
子句中。在 select
中包含 hour(date)
是一种很好的形式,这样您就知道给定计数指的是哪个小时。
编辑:
要得到今天的小时数,小时可以做:
SELECT HOUR(date) as hr, historyId, COUNT(*) as num_rows
FROM webHistory
WHERE date(date) = date(now()) AND userId=?
GROUP BY HOUR(date);
关于php - MySqli : num_rows of grouped by hour(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24230299/