首页 > 解决方案 > 如何解决这个显示正确输出的问题?

问题描述

import mysql.connector
from tabulate 
import tabulate

cnx = mysql.connector.connect(user = 'root' , password = '',host = 'localhost', database = 'karmand')

c = cnx.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS employee (
            Name text,
            Weight integer,
            Height integer
            )''')

c.execute('SELECT * FROM employee ORDER BY Height DESC ')
print(tabulate(c.fetchall()))
cnx.close()

输出假;

--------  --  ---
Mahdi     90  190
Amin      75  180
Mohammad  75  175
Ahmad     60  175
--------  --  ---

输出真:

--------  --  ---
Mahdi     90  190
Amin      75  180
Ahmad     60  175
Mohammad  75  175
--------  --  ---

如果身高相等,如何编写一个 sql 命令,根据项目的身高和体重对项目进行排序?

标签: pythonmysqlsql

解决方案


一个 Order By 子句可以非常简单地包含多个项目。因此,要按身高和体重排序,请执行以下操作:

SELECT 
  * 
FROM 
  employee 
ORDER BY 
  Height DESC,
  Weight ASC

现场演示:https ://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=7f33f82b79724920be1e1499c4dff9da

多个字段排序的示例也可以在网上的许多地方找到,包括在官方 MySQL 文档中。


推荐阅读