首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多个顺序的问题必须遵守第一个子句。

问多个顺序的问题必须遵守第一个子句。
EN

Stack Overflow用户
提问于 2011-04-08 22:10:30
回答 2查看 476关注 0票数 1

我有一个基于total_score字段的查询来获取前50个条目。从这些前50名中,我需要能够按他们的任何其他领域来排序。我尝试使用多个ORDER语句,但结果集从未改变。以下是我的查询:

代码语言:javascript
复制
SELECT 
    e.id, e.name , e.total_score 
FROM 
    entry e 
ORDER BY 
    e.total_score DESC, e.name ASC

我想我明白为什么这不能满足我的需要,所以我想我的问题是我怎样才能实现我的目标?最后,我总是需要50个具有最高total_score的条目,但是这个选择应该由任何其他字段来排序。

如果这在MySQL中是不可能的,我可以用PHP来完成,但是我宁愿让DB处理这个问题。

注意:我在MySQL 5 DB之上使用Doctrine1.2。

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-08 22:13:40

ORDER,当与多个列一起使用时,只在前面的列中使用tie的情况下才使用后续列。

尝试使用嵌套查询

代码语言:javascript
复制
   SELECT * FROM(
    SELECT TOP 50
        e.id, e.name , e.total_score, e.(YOURFIELD)
    FROM 
        entry e 
    ORDER BY 
        e.total_score DESC ) x ORDER BY x.(YOURFIELD)
票数 3
EN

Stack Overflow用户

发布于 2011-04-08 22:15:30

您需要一个子查询

代码语言:javascript
复制
select * from (
                 select ..... order by .... limit 50
               ) as t
order by something_else
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5601299

复制
相关文章

相似问题

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