在MySQL中,从表中查询出的数据可能是无序的,或者排列顺序不是用户所期望的顺序,为了使查询结果的顺序满足用户的需求,可以使用关键字ORDER BY对记录进行排序,其语法形式如下:
SELECT field1,field2...FROM tablename ORDER BY fieldm[ASC|DESC];
在上述语句中,参数tablename表示所要进行排序的表名,参数field表示表中的字段名字,参数fieldm表示按照该字段进行排序。ASC表示升序进行排序。DESC表示按降序进行排序。默认的情况下按ASC升序进行排序。
注意:如果存在一条记录字段的值为空值(NULL),那么按升序排序时,含空值的记录将最先显示,可以理解为空值是该字段的最小值。按降序排列时,字段为空值的记录将最后显示。
代码如下:
mysql> create table class(id int,name varchar(64),grade int); #创建表
mysql> insert into class values(1,'Mr.Wang',87),(2,'Song',45),(3,'Mr.Shi',69),(4,'Mr.Li',73),(5,'Mr.AI',NULL); #插入多列数据
mysql> select*from class order by grade asc; #对grade字段进行升序排序
这个是字段grade按升序排序后的结果可见如果有空值就会最先显示。