php - MySqli : num_rows of grouped by hour()

标签 php mysql sql

我有一个包含以下行的数据库: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/

相关文章:

java - 在 sql2o 中插入时出错

php - 如何构造具有多个权限级别的多个用户?

mysql - 当我使用 left join 和 group by 时,sum 不起作用

javascript - jQuery 生成唯一 ID

php - 对象错误: function query on a non-object

mysql - Prestashop 导出从 1.5 到 1.7

php - num_rows 删除查询 codeigniter

mysql - SQL INSERT 当两个 SELECT 返回非空值时

php - 503 表单提交时服务不可用

PHP 作为守护进程/服务