MySQL 多列排序

MySQL 基础篇函数

三范式spa

MySQL 军规code

MySQL 配置blog

MySQL 用户管理和权限设置排序

MySQL 经常使用函数介绍get

MySQL 字段类型介绍class

MySQL 多列排序基础

MySQL 行转列 列转行配置

MySQL NULL 使用带来的坑权限

MySQL AND 和 OR 联合使用带来的坑

MySQL 触发器的使用

 

数据准备:

CREATE TABLE `teacher` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(32) NOT NULL, `age` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4; insert into `teacher` (`id`, `name`, `age`) values('1','seven','18'); insert into `teacher` (`id`, `name`, `age`) values('2','qingshan','20'); insert into `teacher` (`id`, `name`, `age`) values('3','zhangsan','33');

好比咱们对表中的数据先按照年龄,而后按照姓名排序,怎么写 SQL 呢?

SELECT * FROM teacher ORDER BY age, name;

这里须要注意的是,对于上述例子中的输出,仅在多个行具备相同的 age 值时才对老师按 name 进行排序。若是 age 列中全部的值都是惟一的,则不会按 name 排序。

好比咱们须要对表中的数据先按年龄降序,而后按姓名升序排序,怎么写 SQL 呢?

SELECT * FROM teacher ORDER BY age DESC, name;

能够在姓名 name 字段后面加上 ASC(升序) 也能够不加,由于升序是默认的(若是既不指定 ASC 也不指定 DESC ,则假定为 ASC )。

这里须要注意的是,DESC 关键字只应用到直接位于其前面的列名,在上例中,只对 age 列指定 DESC ,对 name 列不指定。所以,age 列以降序排序,而 name 列(在每一个价格内)仍然按标准的升序排序。在多个列上降序排序 若是想在多个列上进行降序排序,必须对每一个列指定 DESC 关键字。

相关文章
相关标签/搜索