因此,我正在编写一个查询来从数据库中选择数据,并按流行度顺序显示它。我理解这很简单,如果它只是通过ORDER BY numLikes DESC
之类的东西来排序,但在这种情况下,我想要按numLikes
和{{1}对内容进行排序}}
如何以显示今天最新内容的方式对内容进行排序?如果它纯粹通过datePosted
排序,那么顶级内容将浮动到顶部并保持在那里。我希望每天对这些内容进行排序。这是为了允许用户可以选择过去一天,过去一周,过去一个月和所有顶级帖子中的热门帖子的系统。
这可以通过单个SQL查询完成吗?是否必须执行SQL多查询? SQL是否足够强大,或者需要PHP才能发挥作用?
谢谢!
答案 0 :(得分:2)
您只需要先datePosted
排序,然后按numLikes
排序。以下几行:
SELECT * FROM tableName ORDER BY datePosted, numLikes DESC
如果您想要特定范围之间的热门帖子,您可以这样做:
SELECT TOP 1 * FROM tableName
WHERE datePosted BETWEEN [MinDate] AND [MaxDate]
ORDER BY datePosted, numLikes DESC
将[MinDate]和[MaxDate]替换为您需要的日期,例如过去一周,他们会像4月14日和4月20日那样。