MySQL多列asc顺序

标签 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;

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

最佳答案

升序是大多数 (如果不是全部) DBMS 的默认,所以您的陈述在这方面有点奇怪,但尽管如此,您可以通过向其添加说明符 ASCDESC 来指定每个列的顺序。

你的声明将变成

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/

相关文章:

mysql - 在 PhpMyAdmin 中调用存储过程是可以的,但作为查询运行不起作用

c# - 反序列化 XML 的 SQL 查询

Mysql 插入带有外键的表时出现问题

mysql - SQL 字符串不起作用 -> SQL LOWER

java - JOOQ API getPrimaryKey() 对每个表返回 null?

c - select()/poll() 是否适合 C 语言中的简单实时游戏服务器?

php - SQL:获取属于 SUM 中不同值的正确 ID

php - 通过php无表单提交数据到Mysql

mysql - 如何计算一个请求中总金额的金额和百分比?

mysql - 如何查询连通坐标?