首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >对查询中的组进行排序

对查询中的组进行排序
EN

Stack Overflow用户
提问于 2012-03-16 14:00:28
回答 2查看 43关注 0票数 0

我正在使用下面的查询对我网站上的帖子进行分页:

代码语言:javascript
运行
复制
select * from songs t1 join (
select to_days(date) day from songs 
group by day 
order by day desc 
limit $start_row, $items_per_page
) t2
on to_days(t1.date) = t2.day

根据我的$start_row$items_per_page,这将返回过去7天的所有帖子。不管每天是否有超过1个帖子,或者一天是空的和跳过的。

例如:

上面的查询已经正确地返回了最近7天的所有帖子。今天。昨天。前一天等等..。

但是,如果您查看最左侧的表id 12##值,以及最右侧的时间戳day值73####。您将看到它们是向后分组的。

如何切换此查询,使其在相同的分组中以相反的顺序返回相同的结果?

例如:

哦,我的天!- Run This This(TMS混音) Lost Mapaches Back To Basics (La Royale remix)

来自巴黎的迪米特里& DJ罗卡-我需要一个LIving (电台混音)的原因,Chromeo -热门混乱(23 Dubstep Remix)

以此类推。我尝试删除desc值,但这只是返回表中最旧条目的分组。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-16 14:04:37

我会在子查询的外部对您的数据进行排序(注意最后一行),请调整asc / desc的最后一行,或者如果您想要排序的话。

代码语言:javascript
运行
复制
select * from songs t1 join (
select to_days(date) day from songs 
group by day 
order by day desc 
limit $start_row, $items_per_page
) t2
on to_days(t1.date) = t2.day
order by id desc
票数 0
EN

Stack Overflow用户

发布于 2012-03-16 14:04:19

您还需要向外部select添加一个ORDER BY,而不仅仅是要JOINed到的内部select。

代码语言:javascript
运行
复制
SELECT *
FROM songs t1
JOIN (
    SELECT to_days(date) day FROM songs 
    GROUP BY day 
    ORDER BY day DESC
    LIMIT $start_row, $items_per_page
) t2 ON to_days(t1.date) = t2.day
ORDER BY day DESC

(最后一行是您需要添加的部分。)

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

https://stackoverflow.com/questions/9732647

复制
相关文章

相似问题

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