首页 > 解决方案 > 使用 Python 对 MySql 表的列进行排序

问题描述

我是 SQL 的初学者。

考虑我的简单代码:

cnx = mysql.connector.connect(user='root', password='',
                              host='127.0.0.1', database='employees')
cursor = cnx.cursor()

cursor.execute('SELECT * FROM people ORDER BY Height DESC, Weight')

my_result = cursor.fetchall()

cnx.close()

for x in my_result:
  print(x[0], x[1], x[2])

我的员工数据库中有一个people表,其中包含nameHeightWeight列。如果我运行此代码,它会打印所需的排序并且没有问题。但是,似乎这段代码本质上并没有改变表的行顺序。我的意思是,现在如果我跑

SELECT * FROM people;

在终端中,我得到后一张表(没有所需的顺序)。现在,我的问题是:

如何更改表的顺序以使用 Python 获得具有所需排序的新表?有可能吗?

谢谢。

标签: pythonmysqlmysql-python

解决方案


您可以像旧表一样创建一个新表并以所需顺序插入行,否则始终使用 ORDER BY 运行查询。

要创建新表,您可以运行类似于以下内容的查询:

CREATE TABLE people_sorted LIKE people; 
INSERT people_sorted SELECT * FROM people ORDER BY Height DESC, Weight;

推荐阅读