我正在尝试按升序运行此查询:
SELECT title,project_index
FROM projectdetail
WHERE project_index BETWEEN 1 AND 6
ORDER BY title, project_index ASC;
我需要按升序排列的两列,但上述查询返回的结果只有一列按 ASC
顺序排列。
最佳答案
升序是大多数 (如果不是全部) DBMS 的默认,所以您的陈述在这方面有点奇怪,但尽管如此,您可以通过向其添加说明符 ASC
或 DESC
来指定每个列的顺序。
你的声明将变成
SELECT title
, project_index
FROM projectdetail
WHERE project_index BETWEEN 1 AND 6
ORDER BY
title ASC
, project_index ASC
编辑
正如@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
因为 ASC
是默认的排序顺序,所以您可以一起省略它们
SELECT title
, project_index
FROM projectdetail
WHERE project_index BETWEEN 1 AND 6
ORDER BY
project_index
, title
关于MySQL多列asc顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9063135/