You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL条件排序需求:Python代码需实现height相等时优先显示width大的记录

解决MySQL排序:Height相等时优先显示Width更大的记录

嘿,你的需求其实只需要调整SQL语句里的ORDER BY子句就能轻松实现啦!

原代码里的SELECT * FROM data ORDER BY Height只会按Height升序排列,但没处理Height相等时的排序规则。要实现当Height值相等时,把Width更大的记录排在前面,你需要给ORDER BY添加第二个排序条件,并且对Width使用降序(DESC)排序。

修改后的完整代码如下:

import mysql.connector
mydb = mysql.connector.connect(
    host="localhost",
    user="root",
    password="",
    database="data"
)
mycursor = mydb.cursor()
# 调整ORDER BY子句:先按Height排序,Height相同时按Width降序排列
sql = "SELECT * FROM data ORDER BY Height, Width DESC"
mycursor.execute(sql)
myresult = mycursor.fetchall()
for x in myresult:
    print(x[0],x[1],x[2],'\n')

简单拆解一下逻辑:

  • ORDER BY Height:首先按照Height列的默认升序(从小到大)排列所有记录
  • , Width DESC:当两条记录的Height值完全相等时,就切换到Width列的降序(从大到小)排序,这样Width数值更大的记录会被优先展示

如果你的需求是Height本身要按降序排列(比如先展示高的记录),只需要给Height也加上DESC即可,比如ORDER BY Height DESC, Width DESC,这样会先按Height从大到小排序,同Height的记录再按Width从大到小排列。

内容的提问来源于stack exchange,提问作者Sina M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 14:47:57