小编给大家分享一下mysql如何实现升序查询,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

在mysql中,可以利用“SELECT”语句和“ORDER BY”关键字实现升序查询,语法“SELECT {*|字段列名} FROM 表名 [WHERE 条件] GROUP BY 字段名 ASC;”。

本教程操作环境:windows7系统、mysql8版本、Dell G3电脑。

在mysql中,可以利用“SELECT”语句和“ORDER BY”关键字实现升序查询。

SELECT 语句用于查询数据,ORDER BY 关键字主要用来将查询结果中的数据按照一定的顺序进行排序。

基本语法:

SELECT{*|字段列名}FROM表名[WHERE条件]GROUPBY字段名[ASC|DESC];

语法说明如下。

字段名:表示需要排序的字段名称,多个字段时用逗号隔开。

ASC|DESC:ASC表示字段按升序排序;DESC表示字段按降序排序。其中ASC为默认值。

使用 ORDER BY 关键字应该注意以下几个方面:

ORDER BY 关键字后可以跟子查询(关于子查询后面教程会详细讲解,这里了解即可)。

当排序的字段中存在空值时,ORDER BY 会将该空值作为最小值来对待。

ORDER BY 指定多个字段进行排序时,MySQL 会按照字段的顺序从左到右依次进行排序。

单字段排序

下面通过一个具体的实例来说明当 ORDER BY 指定单个字段时,MySQL 如何对查询结果进行排序。

例 1

下面查询 tb_students_info 表的所有记录,并对 height 字段进行排序,SQL 语句和运行结果如下。

mysql>SELECT*FROMtb_students_infoORDERBYheight;+----+--------+---------+------+------+--------+------------+|id|name|dept_id|age|sex|height|login_date|+----+--------+---------+------+------+--------+------------+|2|Green|3|23|F|158|2016-10-22||1|Dany|1|25|F|160|2015-09-10||4|Jane|1|22|F|162|2016-12-20||7|Lily|6|22|F|165|2016-02-26||10|Tom|4|23|M|165|2016-08-05||8|Susan|4|23|F|170|2015-10-01||6|John|2|21|M|172|2015-11-11||5|Jim|1|24|M|175|2016-01-15||9|Thomas|3|22|M|178|2016-06-07||3|Henry|2|23|M|185|2015-05-31|+----+--------+---------+------+------+--------+------------+10rowsinset(0.08sec)

由结果可以看到,MySQL 对查询的 height 字段的数据按数值的大小进行了升序排序。

多字段排序

下面通过一个具体的实例来说明当 ORDER BY 指定多个字段时,MySQL 如何对查询结果进行排序。

例 2

查询 tb_students_info 表中的 name 和 height 字段,先按 height 排序,再按 name 排序,SQL 语句和运行结果如下。

mysql>SELECTname,heightFROMtb_students_infoORDERBYheight,name;+--------+--------+|name|height|+--------+--------+|Green|158||Dany|160||Jane|162||Lily|165||Tom|165||Susan|170||John|172||Jim|175||Thomas|178||Henry|185|+--------+--------+10rowsinset(0.09sec)

注意:在对多个字段进行排序时,排序的第一个字段必须有相同的值,才会对第二个字段进行排序。如果第一个字段数据中所有的值都是唯一的,MySQL 将不再对第二个字段进行排序。

默认情况下,查询数据按字母升序进行排序(A~Z),但数据的排序并不仅限于此,还可以使用 ORDER BY 中的 DESC 对查询结果进行降序排序(Z~A)。

例 3

查询 tb_students_info 表,先按 height 降序排序,再按 name 升序排序,SQL 语句和运行结果如下。

mysql>SELECTname,heightFROMtb_student_infoORDERBYheightDESC,nameASC;+--------+--------+|name|height|+--------+--------+|Henry|185||Thomas|178||Jim|175||John|172||Susan|170||Lily|165||Tom|165||Jane|162||Dany|160||Green|158|+--------+--------+10rowsinset(0.00sec)

DESC 关键字只对前面的列进行降序排列,在这里只对 height 字段进行降序。因此,height 按降序排序,而 name 仍按升序排序。如果想在多个列上进行降序排序,必须对每个列指定 DESC 关键字。

以上是“mysql如何实现升序查询”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!