gpt4 book ai didi

mysql - 按两列排序不起作用

转载 作者:行者123 更新时间:2023-11-29 07:10:49 26 4
gpt4 key购买 nike

我正在尝试创建一个“热门”列表,其中显示前 10 篇文章。趋势列表基于最新和最多的 View 。这就是我当前的 SQL 查询:

$resultSet = $db->query("SELECT * FROM Articles ORDER BY Counter DESC, dateStamp LIMIT 10");

Counter 是存储每篇文章的浏览次数的列。 dateStamp 是存储每篇文章的日期时间的日期时间列。我当前的 SQL 适用于 View 数。它将观看次数最多的文章排在顶部,将观看次数最少的文章排在底部。

我在使用当前 SQL 时遇到的唯一问题是它不只获取最近的日期。它查找所有日期并仅根据 View 对查询进行排序。一篇文章可能长达 2 年,但它会有更多的浏览量,因此会出现在趋势列表中。

如何才能使查询根据最近的 View 和最多的 View 对结果进行排序?

示例数据:

Date: 8/1/15 Views: 20,000

Date: 9/30/16 Views: 500

Date: 9/28/16 Views: 400

Date: 9/25/16 Views: 150

Date: 9/22/16 Views: 100

Date: 9/21/16 Views: 98

Date: 9/20/16 Views: 92

Date: 9/18/16 Views: 10

Date: 9/15/16 Views: 5

Date: 9/12/16 Views: 3

从技术上讲,数据应如下所示:

Date: 9/30/16 Views: 500

Date: 9/28/16 Views: 400

Date: 9/25/16 Views: 150

Date: 9/22/16 Views: 100

Date: 9/21/16 Views: 98

Date: 9/20/16 Views: 92

Date: 9/18/16 Views: 10

Date: 9/15/16 Views: 5

Date: 9/12/16 Views: 3

Date: 9/11/16 Views: 2

它没有组织最近的日期。我需要它来组织最近的日期和最多的 View 。 View 部分工作正常,只是日期不正确。

最佳答案

这是获取 10 条最新记录的方法:

SELECT * FROM Articles ORDER BY dateStamp DESC LIMIT 10;

这是按观看次数降序排列的方法:

SELECT ... ORDER BY Counter DESC;

两者结合:

SELECT *
FROM (SELECT * FROM Articles ORDER BY dateStamp DESC LIMIT 10) TOP10
ORDER BY Counter DESC;

关于mysql - 按两列排序不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39798872/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com