显示最受欢迎/浏览过的文章 - 按时间划分

时间:2014-04-20 22:38:00

标签: php mysql

我有一个新闻网站

在主页上,我想列出过去7天内观看次数最多的4篇文章

我有一张桌子,文章:id,title,body,publishTime,viewCount ......

我不能按照查看次数的顺序显示前4位,因为它已经显示的时间越长,它通常会有更多的视图。 所以我需要按小时显示视图

所以我的查询需要在过去168小时内获取所有文章,将每个观看次数除以显示的小时数,然后只显示前4位

是否可以使用命令执行此操作,还是需要创建某种虚拟表?

(使用php& mysql)

感谢

1 个答案:

答案 0 :(得分:2)

根据我们在评论中的讨论,您似乎不是在“过去7天内观看次数最多的文章”之后,而是“ 4篇平均成绩最高的文章过去7天内发布的观看率“。这可以通过以下方式实现:

SELECT   *
FROM     Articles
WHERE    publishTime > CURRENT_TIME - INTERVAL 7 DAY
ORDER BY viewCount / (UNIX_TIMESTAMP() - UNIX_TIMESTAMP(publishTime)) DESC
LIMIT    4