📅  最后修改于: 2023-12-03 15:17:46.075000             🧑  作者: Mango
MySQL中的ORDER BY子句用于根据一个或多个列对查询结果进行排序。可以按升序或降序排列。
SELECT column1, column2, ...
FROM table_name
ORDER BY column1, column2, ... ASC|DESC;
其中,column1, column2, ...
是需要排序的列的名称,ASC
表示升序,DESC
表示降序。如果不指定排序方式,默认排序方式为升序。
例如,对一个名为students
的表按学生ID升序排列:
SELECT *
FROM students
ORDER BY student_id ASC;
可以按照多列进行排序,只需在ORDER BY子句中指定多个列名即可。
例如,对一个名为students
的表,首先按照年级升序排序,然后按照分数降序排序:
SELECT *
FROM students
ORDER BY grade ASC, score DESC;
在默认情况下,NULL值在排序时会被视为最小的值。也可以通过在ORDER BY子句中指定NULLS FIRST或NULLS LAST方式来确定NULL值在排序中应该排在前面还是后面。
例如,对一个名为students
的表按分数进行升序排序,但希望NULL值在最后,可以使用以下语句:
SELECT *
FROM students
ORDER BY score ASC NULLS LAST;
ORDER BY子句是MySQL中非常常用和重要的子句之一。可以通过它对查询结果按照指定的方式进行排序,非常灵活方便。同时,对于处理NULL值的情况,也提供了非常便利的功能。