如何在 MySQL 中对选择查询获得的结果进行排序?
通常从表中选择某些数据或行。行按它们在表中出现的顺序返回。我们有时可能会要求从表中选择的行必须相对于某些列按升序或降序返回给我们。
“ORDER BY”语句用于对某些列的结果进行排序。以下示例将提供更清晰的说明。
假设,我们有一个由各种字段组成的表,包括“名称”字段。我们希望从表中选择所有行,但我们希望行必须按名称的字母顺序排序。这就是“ORDER BY”语句发挥作用的地方。这种情况要求我们按“名称”字段的升序对结果进行排序。
默认情况下,“ORDER BY”语句按升序对指定的列进行排序。如果希望结果按降序排序,则需要指定相同的顺序。要按降序排列结果,应指定关键字“DESC”。
语法
升序
SELECT * FROM table_name ORDER BY column_name
降序
SELECT * FROM table_name ORDER BY column_name DESC
使用python中的MySQL对从表中检索的数据进行排序的步骤
-
导入 MySQL 连接器
-
使用 connect() 与连接器建立连接
-
使用 cursor() 方法创建游标对象
-
使用适当的 MySQL 语句创建查询
-
使用 execute() 方法执行 SQL 查询
-
关闭连接
假设我们有一个名为“学生”的表,如下所示 -
+----------+---------+-----------+------------+ | 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)
显示的所有行均按名称的字母顺序排列。类似地,行可以按照类似语法按照标记的升序或降序排列。