这是命令行操作MySQL数据库系列博客的第十六篇,今天这篇博客记录order by 如何将查询结果进行排序。
在MySQL中,从表中查询出的数据可能是无序的,或者其排列顺序不是用户所期望的顺序,为了使查询结果的顺序满足用户的要求,可以使用关键字ORDER BY对记录进行排序,其语法形式如下:
select * from 表名 ORDER BY 字段名 [ASC | DESC];
ASC表示按升序进行排序;DESC表示按降序进行排序。默认的情况下按ASC进行排序。
简单来说,将查询结果按照自己期待的列进行排序。
注意:如果存在一条记录字段的值为空值(NULL),那么按升序排序时,含空值的记录将最先显示,可以理解为空值是该字段的最小值;按降序排列时,字段为空值的记录将最后显示。
例:
-
创建表,并插入数据
create table order_by(id int PRIMARY KEY AUTO_INCREMENT, name varchar(32) DEFAULT NULL, age int DEFAULT NULL); insert into order_by(name, age) values('甲', 23), ('乙', 18), ('丙', 28), ('丁', NULL);
-
查询年龄以升序进行排序
select * from order_by ORDER BY age ASC;
-
查询年龄以降序进行排序
select * from order_by ORDER BY age DESC;
-
结合BETWEEN AND进行排序
select * from order_by where id BETWEEN 2 AND 4 ORDER BY age DESC;
总结:
ORDER BY 排序就是将查询到的结果按照指定的列进行排序,很实用。也还可以结合BETWEEN AND、IN、DISTINCT等进行查询!