如何对 MySQL 中的 select 查询结果进行排序?

mysqlmysqli database

从表中选择某些数据或行是很常见的。行按它们在表中出现的顺序返回。有时我们可能要求从表中选择的行必须按某些列的升序或降序返回给我们。

“ORDER BY” 语句用于按某些列对结果进行排序。以下示例将提供更清晰的说明。

假设我们有一个包含各种字段的表,包括“name” 字段。我们想从表中选择所有行,但我们希望这些行必须按名称的字母顺序排列。这就是“ORDER BY” 语句发挥作用的地方。这种情况要求我们按“name” 的升序对结果进行排序字段。

“ORDER BY” 语句默认按升序对指定列进行排序。如果希望结果按降序排列,则需要指定。要按降序排列结果,需要指定关键字“DESC”。

语法

升序

SELECT * FROM table_name ORDER BY column_name

降序

SELECT * FROM table_name ORDER BY column_name DESC

使用 MySQL 在 Python 中对从表中检索的数据进行排序所涉及的步骤

  • 导入 MySQL 连接器

  • 使用 connect() 与连接器建立连接

  • 使用 cursor() 方法创建游标对象

  • 使用适当的 mysql 语句创建查询

  • 使用 execute() 方法执行 SQL 查询

  • 关闭连接

假设我们有名为"Student"的表如下 −

+----------+---------+-----------+------------+
|    Name  |   Class |    City   | Marks      |
+----------+---------+-----------+------------+
|    Karan |    4    |  Amritsar |    95      |
|    Sahil |    6    |  Amritsar |    93      |
|    Kriti |    3    |    Batala |    88      |
|   Khushi |    9    |    Delhi  |    90      |
|    Kirat |    5    |    Delhi  |    85      |
+----------+---------+-----------+------------+

示例

我们希望从表中选取所有行,但按名称的字母顺序排列。简而言之,我们希望按名称的升序排列结果。

import mysql.connector

db=mysql.connector.connect(host="your host", user="your username", password="your
password",database="database_name")

cursor=db.cursor()

query= "SELECT * FROM Students ORDER BY Name"
cursor.execute(query)
for row in cursor:
   print(row)

上述代码成功执行后将按学生姓名的升序或字母顺序返回行。

输出

(‘Amit’ , 9 , ‘Delhi’ , 90)
(‘Karan’, 4 ,’Amritsar’ , 95)
(‘Kriti’ , 3 , ‘Batala’ ,88)
(‘Priya’ , 5 , ‘Delhi’ ,85)
(‘Sahil’ , 6 , ‘Amritsar’ ,93)

显示的所有行均按名称的字母顺序排列。同样,行也可以按照类似的语法按标记的升序或降序排列。


相关文章