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

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

- 按多个列排序.
- 为了按多个列排序,只要指定列名,列名之间用逗号分开即可。
eg.1:查询所有学生信息,按年龄排序,年龄相同时,再按学号排序
SELECT
*
FROM
students
ORDER BY
age,studentsNo
返回结果:

重要的是理解在按多个列排序时,排序完全按所规定的顺序进行。换句话说,对于例子中的输出,仅在多个行具有相同的age时,才对studentsNo进行排序。
- 按指定排序方向
- ASC关键字:从小到大排序,即升序(A到Z)
- DESC关键字1:从大到小排序,即降序(Z到A)
eg.2:查询所有学生信息,按班级从小到大排序,班级相同时,再按学号从小到大排序
SELECT
*
FROM
students
ORDER BY
class ASC,
atudentsNo DESC
返回结果:

DESC关键字只应用于直接位于其前面的列名。
- 查找最高或最低的值
- 使用ORDER BY和LIMIT结合
eg.3:查找年龄最大的学生信息
SELECT
*
FROM
students
ORDER BY
age DESC
LIMIT 1
返回结果:

在给出ORDER BY子句时,应该保证它位于FROM子句之后。如果使用LIMIT,它必须位于ORDER BY之后。使用子句的次序不对将产生错误的信息
如果想在多个列上进行降序排序,必须对每个列指定DESC关键字。 ↩︎
本文介绍了如何使用MySQL的ORDER BY语句对查询结果进行排序。通过示例解释了按单列、多列以及指定排序方向(升序和降序)进行排序的方法,并展示了ORDER BY与LIMIT结合查找最高或最低值的应用。
1418

被折叠的 条评论
为什么被折叠?



