【问题标题】:MYSQL select max value if quantity is greater如果数量更大,MYSQL 选择最大值
【发布时间】:2018-07-19 06:09:14
【问题描述】:

我有一个包含以下数据的表格:

product_id         qty       price_reduction
     1               1              5
     1               2              10
     1               3              15

如果数量大于 3,我如何获得最大降价 (-15)。 现在我使用这个查询,由于显而易见的原因,它没有做我想要做的事情:

SELECT price_reduction 
  FROM table
 WHERE product_id = 1
   AND qty = '$qty' 
 LIMIT 1

任何帮助表示赞赏。

【问题讨论】:

标签: mysql


【解决方案1】:

如果您只是想获得一个结果,那么将结果过滤到仅<= :qty,按qty DESC 排序,并将结果限制为一个应该可以工作。

SELECT price_reduction
FROM table
WHERE product_id = 1
AND qty <= :qty
ORDER BY qty DESC
LIMIT 1

这是一个有效的SQL Fiddle

【讨论】:

  • @Devon,你确定吗?如果数量为 2,则应返回 10,而不是 15
  • 是的,你是对的。我脑子里乱七八糟的。
  • 我想我在发布最初的答案时也这样做了。
  • 嗯,现在无论我输入多少数量,它都会选择找到的最小 price_reduction 值。
  • 我写的查询是基于用户必须至少有指定的数量才能实现降价。如果用户有qty = 2,应该降价多少? 1015?
猜你喜欢
  • 2017-03-23
  • 1970-01-01
  • 1970-01-01
  • 2011-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-28
  • 2016-02-16
相关资源
最近更新 更多