如何使用MySQL ORDER BY按值进行排序?

如何使用MySQL ORDER BY按值进行排序?

在MySQL中,ORDER BY语句用于根据表中的值对结果集进行排序。它使用“ASC”或“DESC”关键字来指定升序或降序排序。在本文中,我们将学习如何使用MySQL ORDER BY按值进行排序。

阅读更多:MySQL 教程

基本语法

下面是使用ORDER BY的基本语法:

SELECT column_name(s)
FROM table_name
ORDER BY column_name(s) ASC|DESC;

其中,“column_name(s)”是需要排序的列名称,“table_name”是要从中查询数据的表名称,“ASC|DESC”指定升序或降序排列方式。

按单个列排序

现在让我们看一下如何按单个列对结果集进行排序。我们将使用以下示例表:

CREATE TABLE students (
   id INT PRIMARY KEY,
   name VARCHAR(50),
   score INT
);
INSERT INTO students VALUES (1, 'Mike', 75);
INSERT INTO students VALUES (2, 'Adam', 85);
INSERT INTO students VALUES (3, 'Bob', 92);

要按“score”列的值对学生进行排序,可以使用以下查询:

SELECT * FROM students
ORDER BY score DESC;

在上面的查询中,“DESC”关键字指示按“score”列的降序对结果进行排序。查询结果如下:

+----+------+-------+
| id | name | score |
+----+------+-------+
|  3 | Bob  |    92 |
|  2 | Adam |    85 |
|  1 | Mike |    75 |
+----+------+-------+

按多个列排序

您可能需要对结果集按多个列进行排序。为此,可以按以下方式使用ORDER BY:

SELECT * FROM students
ORDER BY score DESC, name ASC;

在上面的查询中,我们按“score”列的降序排序,然后按“name”列的升序排序。查询结果如下:

+----+------+-------+
| id | name | score |
+----+------+-------+
|  3 | Bob  |    92 |
|  2 | Adam |    85 |
|  1 | Mike |    75 |
+----+------+-------+

如果有多个记录具有相同的“score”和“name”列值,则该记录将以任意顺序返回。

对空值排序

在MySQL中,NULL值可以被认为是低于任何其他值的值。这意味着当通过ORDER BY对列进行排序时,将首先返回NULL值。在以下示例中,我们将在“score”列中添加一些NULL值:

INSERT INTO students VALUES (4, 'John', NULL);
INSERT INTO students VALUES (5, 'Eva', 78);
INSERT INTO students VALUES (6, 'Jack', NULL);

我们用以下方式使用ORDER BY对学生进行排序:

SELECT * FROM students
ORDER BY score ASC, name ASC;

在上面的查询中,我们按“score”列的升序排序,然后按“name”列的升序排序。查询结果如下:

+----+------+-------+
| id | name | score |
+----+------+-------+
|  1 | Mike |    75 |
|  5 | Eva  |    78 |
|  2 | Adam |    85 |
|  3 | Bob  |    92 |
|  6 | Jack |  NULL |
|  4 | John |  NULL |
+----+------+-------+

请注意,“score”列中的NULL值现在出现在列表的底部。

结论

在本文中,我们学习了如何使用MySQL ORDER BY按值进行排序。我们了解了如何按单个列或多个列排序,并讨论了如何对列中的NULL值排序。ORDER BY是一个强大的排序工具,可以帮助您快速轻松地访问您感兴趣的数据。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程