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

MySQL查询优化:仅选取Bull=1的cityIdFrom=91最低价格记录

解决你的SQL查询调整需求

Hey there! 作为SQL新手,能写出分组取最低值的查询已经很棒啦😉。针对你需要的调整——当cityIdFrom为91时仅选取Bull=1的记录,其他情况不受限制,我们只需要在原查询的WHERE子句里添加一个逻辑判断条件就可以实现。

修改后的查询语句

SELECT 
    cityIdFrom, 
    cityIdTo, 
    MIN(fromToPrice) as fromToPrice_min,
    Bull
FROM pricing 
WHERE 
    cityIdFrom IN (91, 94, 95, 99) 
    AND cityIdTo IN (91, 94, 95, 99)
    -- 核心条件:要么不是91出发的记录,要么是91出发且Bull=1的记录
    AND (cityIdFrom != 91 OR Bull = 1)
GROUP BY cityIdFrom, cityIdTo, Bull;

为什么这样改?

我们添加的(cityIdFrom != 91 OR Bull = 1)条件会自动过滤掉不符合要求的记录:

  • 当cityIdFrom是91时,只有Bull=1的记录会被保留,排除掉Bull=0的条目(比如示例里的91→94(3000)、91→95(1000)这两条)
  • 当cityIdFrom是其他值(94/95/99)时,这个条件不会对记录做额外限制,和原查询逻辑一致

验证示例数据的结果

用你给出的示例数据运行这个查询,会得到完全符合你期望的结果:

cityIdFromcityIdTofromToPrice_minBull
919450001
919915001
999520000

如果还有其他疑问,随时问哦!

内容的提问来源于stack exchange,提问作者D. Make

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:40:02