php - mySQL:在结果内的间隔之间自动插入行

标签 php mysql business-logic

我的任务是提取按小时分组的数据。我通过发出类似于以下命令的命令来执行此操作:

SELECT DISTINCT 
   COUNT(player_id) AS `count`, 
   YEAR(date_created) AS `year`, 
   MONTH(date_created) AS `month`, 
   DAY(date_created) AS `day`, 
   HOUR(date_created) AS `hour` 

FROM `logs` 

WHERE 
   (controller='player') AND 
   (action='updatehash') AND (date_created >= FROM_UNIXTIME(1317916800)) AND 
   (date_created <= FROM_UNIXTIME(1318003199)) 

GROUP BY `year`, `month`, `day`, `hour` 

ORDER BY `year` ASC, `month` ASC, `day` ASC, `hour` ASC 

返回的结果类似于以下内容:

Array
(
    [0] => Array
        (
            [count] => 2
            [year] => 2011
            [month] => 10
            [day] => 7
            [hour] => 16
        )

    [1] => Array
        (
            [count] => 5
            [year] => 2011
            [month] => 10
            [day] => 7
            [hour] => 17
        )

    [2] => Array
        (
            [count] => 21
            [year] => 2011
            [month] => 10
            [day] => 7
            [hour] => 18
        )

    [3] => Array
        (
            [count] => 3
            [year] => 2011
            [month] => 10
            [day] => 7
            [hour] => 19
        )

)

结果似乎没问题,只是我必须让它返回过去 24 小时的结果,包括没有计数值的时间。因此,根据我上面发布的结果,它应该返回从 10 月 7 日 19:00 到 10 月 6 日 18:00 的结果。

这可能吗?

谢谢大家! ;)

最佳答案

简短的回答,不使用此 SQL,您没有连接表,因此您不能使用“左连接”技术。因为你在这段时间里确实没有任何日志记录。

也许您可以尝试创建 FUNCTION 方法或使用您的编程语言每小时插入至少一条记录。

关于php - mySQL:在结果内的间隔之间自动插入行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7817802/

相关文章:

business-logic - 业务层结构,如何建立自己的结构?

php - 与 mvc/oop 相比,Spaghetti php 代码的性能和可扩展性?

php - 如何检查多维数组中是否存在特定数组键

javascript - 我只想在字段中给出数字是否可以不进行任何验证

mysql - 按具有 has_many 关联的连接表列分组

php - 表示 php 关联数组等价于 javascript 数组

php - 如何在laravel builder中实现递归查询

c# - 如何使数据库更新为 'score record'?

php - 每个帖子 ID 加载一个评论框(仅循环检索一次)

e-commerce - 税收引擎示例