gpt4 book ai didi

php - 选择按天分组的命中,包括命中数为 0 的天数

转载 作者:行者123 更新时间:2023-11-29 05:31:54 24 4
gpt4 key购买 nike

我有一个记录 url 命中的表

目标是获取按天分组的 parent 的所有hits

parent 表示url的id

time 是由 PHP 的 time()

生成的 int
id | parent | time

到目前为止我提出的查询:(假设我想选择项目 2929)

SELECT time, count( * ) AS hits
FROM `hits`
WHERE parent =2929
GROUP BY floor( time /86400 )
ORDER BY time ASC

现在的问题是,我只得到 5 行

time            hits
1355761244 9
1355791721 22
1355879697 23
1355966014 16
1356070906 24

因为 MySQL 不会返回命中数为 0 的天数。

我该如何解决这个问题?

目标是例如选择最近 7 天或 30 天或 365 天以及接收 0 命中的天数

更新查询以选择上个月的天数:

SELECT floor(time/86400) AS day, count( * ) AS hits
FROM `hits`
WHERE parent =2929
AND time > ONE_MONTH_AGO
GROUP BY day
ORDER BY time ASC
LIMIT 0 , 30

使用 Pharaoh 的 PHP 函数,这应该可以正常工作。

最佳答案

由于没有命中的一天没有命中,所以这一天没有数据库条目 - 所以 MySQL 无法选择任何内容。
我会在查询完成后在 PHP 中执行此操作(“填充孔”)。

要么你做这样的数据后处理:

for ($day=$minday; $day<=$maxday; $day++)
if (!isset($sql_array[$day]))
$sql_array[$day]=0;

或者您在回显数据时直接执行此操作:

for ($day=$minday; $day<=$maxday; $day++)
if (!isset($sql_array[$day]))
echo 0;
else
echo $sql_array[$day];

我假设 $day 是一个计算天数的整数,您必须修改它以满足您的需要。

关于php - 选择按天分组的命中,包括命中数为 0 的天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14003364/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com