复杂的SQL查询 - 热门内容

时间:2016-04-20 13:15:06

标签: php mysql sql-server

因此,我正在编写一个查询来从数据库中选择数据,并按流行度顺序显示它。我理解这很简单,如果它只是通过ORDER BY numLikes DESC之类的东西来排序,但在这种情况下,我想要按numLikes和{{1}对内容进行排序}}

如何以显示今天最新内容的方式对内容进行排序?如果它纯粹通过datePosted排序,那么顶级内容将浮动到顶部并保持在那里。我希望每天对这些内容进行排序。这是为了允许用户可以选择过去一天,过去一周,过去一个月和所有顶级帖子中的热门帖子的系统。

这可以通过单个SQL查询完成吗?是否必须执行SQL多查询? SQL是否足够强大,或者需要PHP才能发挥作用?

谢谢!

1 个答案:

答案 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日那样。