排序 ORDER BY

57.14 排序 ORDER BY

ORDER BY 列 [ASC|DESC] — ASC 升序(默认),DESC 降序。

多列排序:ORDER BY class_name ASC, score DESC — 先按班级升序,同班再按分数降序。

按分数排名

import pymysql

conn = pymysql.connect(host='127.0.0.1', user='root', password='root', database='py_demo', charset='utf8mb4')
try:
    with conn.cursor() as cur:
        cur.execute('SELECT name, score FROM students ORDER BY score DESC')
        print('分数从高到低:')
        for i, row in enumerate(cur.fetchall(), 1):
            print(i, row)
        cur.execute(
            'SELECT name, class_name, score FROM students ORDER BY class_name, score DESC'
        )
        print('按班+分数:', cur.fetchall())
finally:
    conn.close()