首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MYSQL -选择特定的日期范围以获取“当前”流行的屏幕保护程序

问MYSQL -选择特定的日期范围以获取“当前”流行的屏幕保护程序
EN

Stack Overflow用户
提问于 2010-03-23 12:54:54
回答 1查看 431关注 0票数 1

假设我有一个屏保网站。我想在网站的首页显示当前排名前100位的屏幕保护程序。

我的意思是,“最近”排名前100的屏保。执行此操作的示例查询是什么?

我现在的想法是:

代码语言:javascript
复制
SELECT * FROM tbl_screensavers WHERE WEEK(tbl_screensavers.DateAdded) = WEEK('".date("Y-m-d H:i:s",strtotime("-1 week"))."') ORDER BY tbl_screensavers.ViewsCount, tbl_screensavers.DateAdded

这将选择上周添加的("tbl_screensavers.DateAdded")浏览次数最多的("tbl_screensavers.ViewsCount")屏幕保护程序。

然而,在某些情况下,当周没有提交屏幕保护程序,或者少于100个屏幕保护程序。

那么,我如何执行一个查询来选择“最近的”前100个屏幕保护程序呢?希望你知道当我说“最近”或“当前”的顶级屏幕保护程序时,我想要实现的是什么。--又名。观看次数最多的,最近的-不是观看次数最多的,所有时间。

EN

回答 1

Stack Overflow用户

发布于 2010-03-23 13:07:27

如果没有其他算法来权衡视图与最近视图的价值,那么您只需要

代码语言:javascript
复制
SELECT * FROM tbl_screensavers ORDER BY ViewsCount limit 100

然而,为了捕捉“最近”的概念,您可能想要引入一个算法来衡量特定视图的最近程度。要做到这一点,一种方法是为每个视图分配一个daysOld分数,并显示得分最低的100分(使用这种机制,低分就像在高尔夫中一样)。

我不是一个足够优秀的MySQL专家来为此编写查询,但它将涉及到对分数进行求和,计算得出的分数是根据daysOld=today-dateOfScore计算的,然后根据该分数对结果集进行排序,限制为100。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2497665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档