首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL多列按序排列

问MySQL多列按序排列
EN

Stack Overflow用户
提问于 2012-01-30 19:29:11
回答 8查看 62.4K关注 0票数 12

我正在尝试以升序运行此查询:

代码语言:javascript
复制
SELECT title,project_index 
FROM projectdetail  
WHERE project_index BETWEEN 1 AND 6 
ORDER BY title, project_index ASC;

我需要两列按升序排列,但上面的查询返回的结果中只有一列按ASC顺序排列。

EN

回答 8

Stack Overflow用户

发布于 2012-01-30 19:34:44

升序是大多数(如果不是全部)数据库管理系统的默认,因此您的语句在这方面有点奇怪,但是,您可以通过向列添加说明符ASC或DESC来为每个单独的列指定顺序。

那么你的语句就会变成

代码语言:javascript
复制
SELECT  title
        , project_index 
FROM    projectdetail 
WHERE   project_index BETWEEN 1 AND 6 
ORDER BY 
        title ASC
        , project_index ASC

编辑

正如@Arvo & @Dems所提到的,目前您正在title上对first进行排序,并在project_index上对相同的标题进行排序。如果希望首先对project_index进行排序,则必须首先将其放在ORDER BY子句中。

然后,您的语句将变为

代码语言:javascript
复制
SELECT  title
        , project_index 
FROM    projectdetail 
WHERE   project_index BETWEEN 1 AND 6 
ORDER BY 
        project_index ASC
        , title ASC

因为ASC是默认的排序顺序,所以您可以将它们一起省略

代码语言:javascript
复制
SELECT  title
        , project_index 
FROM    projectdetail 
WHERE   project_index BETWEEN 1 AND 6 
ORDER BY 
        project_index
        , title
票数 28
EN

Stack Overflow用户

发布于 2012-01-30 19:33:31

如果您使用的是mysql,请查看this。

就像他们说的,你可以使用SELECT * FROM t1 ORDER BY key_part1 DESC, key_part2 ASC;

票数 4
EN

Stack Overflow用户

发布于 2016-10-16 13:57:47

按标题排序、project_index按标题排序;

代码语言:javascript
复制
 SELECT title,project_index 
 FROM projectdetail  
 WHERE project_index BETWEEN 1 AND 6 
 ORDER BY title ASC, project_index ASC;

您还可以添加更多列,如ORDER BY col1 ASC, col2 ASC, col3 DESC;

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

https://stackoverflow.com/questions/9063135

复制
相关文章

相似问题

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