MySQL多表查询语句升序_使用SQL的ORDER BY子句对查询的记录重新排序

本文详细介绍了SQL查询中的ORDER BY子句,用于对查询结果集进行排序。ORDER BY允许指定字段进行升序或降序排序,默认为升序。举例说明了如何根据价格、课程名称等字段进行排序,包括单字段和多字段排序,并结合WHERE子句进行条件筛选后的排序。
摘要由CSDN通过智能技术生成

在SQL查询结果集中,记录的顺序是按它们在表中的顺序进行排列的,可以使用ORDER BY子句对查询结果按照给定的字段值重新进行排序。排序支持升序和降序,升序按照从低到高或者从小到大,降序按照从高到低或者从大到小。在ORDER BY子句后面添加关键字ASC可以让返回的记录按升序排序,添加关键字DESC可以让返回的记录按降序排序,如果省略ASC(升序)或DESC(降序),系统则默认为升序。需要注意的是关键字ASC(升序)或DESC(降序)只能单独使用,不能同时使用。

ORDER BY子句后面是待排序的字段。若字段的值是数值,进行ASC(升序)排序时,记录按照字段的值从小到大进行排序。进行DESC(降序)排序时,记录按照字段的值从大到小进行排序;若字段的值是字符串时,排序会按照字典顺序进行。

例1:查询mooc数据库的course表,查询返回的结果集按照价格字段升序排序。

例1要求按照价格字段升序排序,可以使用ORDER BY子句对查询返回的结果集排序,如果没有WHERE子句,ORDER BY子句可以直接添加在FROM子句后面。在查询窗口输入下面的SQL语句。

select * FROM course ORDER BY price ASC

在上面的SQL语句中将返回按照price字段值升序排序的课程记录。SQL查询结果如下图所示。

28911e05e1e6ce13a188202b11fecbd1.png

例2:查询mooc数据库的course表,查询返回的结果集按照价格字段降序排序。

查询内容同例1相同,排序要求按照价格字段的值降序排序。在查询窗口输入下面的SQL语句。

select * FROM course ORDER BY price DESC

在上面的SQL语句中将返回按照price字段值降序排序的课程记录。SQL查询结果如下图所示。

4956dfb460e77711b0b416b0723bb600.png

例3:查询mooc数据库的course表,查询返回的结果集按照课程名称排序。

例3要求按照课程名称字段进行排序,课程名称字段的值是字符串,排序规则是字典顺序。在查询窗口输入下面的SQL语句。

select * FROM course ORDER BY name

在上面的SQL语句中,ORDER BY子句name字段后面没有添加排序关键字,MySQL默认为升序排序。SQL查询结果如下图所示。

eebb60338e38e38f59c9466b39e61e78.png

例4:查询mooc数据库的course表,查询返回的结果集按照课程名称降序排序。

查询内容同例3相同,排序要求按照课程名称字段的值降序排序。在查询窗口输入下面的SQL语句。

select * FROM course ORDER BY name DESC

在上面的SQL语句中,在ORDER BY子句name字段后面添加DESC关键字,返回结果集将以字典顺序降序排序。SQL查询结果如下图所示。

e1fcf9f5f19707b0455cec517e83f063.png

例5:查询mooc数据库的course表,查询课程类别为机器学习的课程记录,并按照课程价格降序排序。

查询内容要求类别为机器学习的课程并按照价格降序排序。在查询窗口输入下面的SQL语句。

select * FROM course WHERE category = "机器学习" ORDER BY price DESC

在上面的SQL语句中,首先查询出类别为“机器学习”的课程记录,然后再按照价格字段降序排序。SQL查询结果如下图所示。

c900e9902c1e9de904f081282ac1ad9e.png

例6:查询mooc数据库的course表,查询所有课程记录,并按照课程名称、价格字段升序排序。

查询内容要求按课程名称和价格两个字段值进行排序,对于多个字段排序,MySQL会先对第一个字段进行排序,然后在排序的基础上再对后面的字段进行排序,依次类推,字段与字段之间用英文逗号分隔。在查询窗口输入下面的SQL语句。

select * FROM course ORDER BY name,price

在上面的SQL语句中,SQL会先按照name排序,然后再按照price排序,前提是先要满足name排序。SQL查询结果如下图所示。

8303c1df3d53e97706a9d5b46bc4d70b.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值