MySQL多列asc命令

use*_*693 12 mysql sql select sql-order-by

我试图按升序运行此查询:

SELECT title,project_index 
FROM projectdetail  
WHERE project_index BETWEEN 1 AND 6 
ORDER BY title, project_index ASC;
Run Code Online (Sandbox Code Playgroud)

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

Lie*_*ers 28

升序是默认的大多数(如果不是全部)的DBMS所以你的说法是一种怪异的在这方面但尽管如此,您可以通过添加指定单元指定每一列的顺序ASCDESC给它.

那么你的陈述就会成为

SELECT  title
        , project_index 
FROM    projectdetail 
WHERE   project_index BETWEEN 1 AND 6 
ORDER BY 
        title ASC
        , project_index ASC
Run Code Online (Sandbox Code Playgroud)

编辑

正如@Arvo&@Dems被提及,目前正在排序第一title和在相同的标题project_index.如果您想project_index先排序,则必须先将其放在ORDER BY子句中.

你的陈述就变成了

SELECT  title
        , project_index 
FROM    projectdetail 
WHERE   project_index BETWEEN 1 AND 6 
ORDER BY 
        project_index ASC
        , title ASC
Run Code Online (Sandbox Code Playgroud)

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

SELECT  title
        , project_index 
FROM    projectdetail 
WHERE   project_index BETWEEN 1 AND 6 
ORDER BY 
        project_index
        , title
Run Code Online (Sandbox Code Playgroud)


Iva*_*rov 4

如果你使用 mysql,请检查一下

正如他们所说,你可以使用SELECT * FROM t1 ORDER BY key_part1 DESC, key_part2 ASC;