MySQL排序检索数据-ORDER BY语句

本文介绍了如何使用MySQL的ORDER BY语句对查询结果进行排序。通过示例解释了按单列、多列以及指定排序方向(升序和降序)进行排序的方法,并展示了ORDER BY与LIMIT结合查找最高或最低值的应用。

    通常检索出的数据并不是以纯粹的随机顺序显示的。如果不排序,数据一般将以它在底层表中出现的顺序显示。
    为了明确地排序用SELECT语句检索出的数据,可以使用ORDER BY子句。ORDER BY子句取一个或多个列的名字,据此对输出进行排序。

students表
在这里插入图片描述

  1. 排序数据
SELECT
*
FROM
students
ORDER BY
age
--如果没有指定排序方向,则默认按照从小到大排序

返回结果:
在这里插入图片描述

  1. 按多个列排序.
  • 为了按多个列排序,只要指定列名,列名之间用逗号分开即可。

eg.1:查询所有学生信息,按年龄排序,年龄相同时,再按学号排序

SELECT
*
FROM
students
ORDER BY
age,studentsNo

返回结果:
在这里插入图片描述
重要的是理解在按多个列排序时,排序完全按所规定的顺序进行。换句话说,对于例子中的输出,仅在多个行具有相同的age时,才对studentsNo进行排序。

  1. 按指定排序方向
  • ASC关键字:从小到大排序,即升序(A到Z)
  • DESC关键字1:从大到小排序,即降序(Z到A)

eg.2:查询所有学生信息,按班级从小到大排序,班级相同时,再按学号从小到大排序

SELECT
*
FROM
students
ORDER BY
class ASC,
atudentsNo DESC

返回结果:
在这里插入图片描述
DESC关键字只应用于直接位于其前面的列名。

  1. 查找最高或最低的值
  • 使用ORDER BY和LIMIT结合
    eg.3:查找年龄最大的学生信息
SELECT
*
FROM
students
ORDER BY
age DESC
LIMIT 1

返回结果:
在这里插入图片描述
在给出ORDER BY子句时,应该保证它位于FROM子句之后。如果使用LIMIT,它必须位于ORDER BY之后。使用子句的次序不对将产生错误的信息


  1. 如果想在多个列上进行降序排序,必须对每个列指定DESC关键字。 ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值