首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按两列排序不起作用

按两列排序不起作用
EN

Stack Overflow用户
提问于 2016-09-30 19:33:18
回答 2查看 1.6K关注 0票数 0

我正试图创建一个“热门”列表,其中前10篇文章出现。趋势列表是基于最新的和大多数的观点。这就是我当前的SQL查询的样子:

代码语言:javascript
复制
$resultSet = $db->query("SELECT * FROM Articles ORDER BY Counter DESC, dateStamp LIMIT 10");

Counter是存储每篇文章有多少视图的列。dateStamp是存储每篇文章的日期时间的datetime列。我的当前SQL适用于视图的数量。它对顶部视图最多的文章和底部视图最少的文章排序。

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

如何使查询基于最近视图和大多数视图对结果进行排序?

示例数据:

日期: 8/1/15浏览:20 000 日期: 9/30/16浏览次数: 500 日期: 9/28/16浏览: 400 日期: 9/25/16浏览: 150 日期: 9/22/16浏览次数: 100 日期: 9/21/16浏览日期: 98 日期: 9/20/16意见: 92 日期: 9/18/16意见: 10 日期: 9/15/16意见:5 日期: 9/12/16浏览次数:3

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

日期: 9/30/16浏览次数: 500 日期: 9/28/16浏览: 400 日期: 9/25/16浏览: 150 日期: 9/22/16浏览次数: 100 日期: 9/21/16浏览日期: 98 日期: 9/20/16意见: 92 日期: 9/18/16意见: 10 日期: 9/15/16意见:5 日期: 9/12/16浏览次数:3 日期: 9/11/16浏览:2

它没有安排最近的约会。我需要它来组织最近的日期和意见。视图部分工作正常,只是日期不对。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-30 20:07:35

以下是如何获得最新的10项记录:

代码语言:javascript
复制
SELECT * FROM Articles ORDER BY dateStamp DESC LIMIT 10;

以下是如何按降序视图排序:

代码语言:javascript
复制
SELECT ... ORDER BY Counter DESC;

这两项合并:

代码语言:javascript
复制
SELECT *
FROM (SELECT * FROM Articles ORDER BY dateStamp DESC LIMIT 10) TOP10
ORDER BY Counter DESC;
票数 2
EN

Stack Overflow用户

发布于 2016-09-30 20:11:34

我认为你需要使用一个where来限制出现的日期。order by根据第一列对结果排序。它只在两行对第一列具有相同的值时才使用第二列。

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

https://stackoverflow.com/questions/39798872

复制
相关文章

相似问题

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