MySQL 基础篇函数
三范式spa
MySQL 军规code
MySQL 配置blog
MySQL 字段类型介绍class
数据准备:
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 关键字。