MySQL查询帮助

时间:2010-10-20 11:20:24

标签: mysql

需要帮助构建查询。我有quantity_price表,列出数量和相应的价格如下所示

Quantity  Price
----------------
1   --  € 175,35
2.5 --  € 160,65
5   --  € 149,10
10  --  € 143,85

因此,最多1个数量价格将是175,35到2.5,它将是160,65等等。超过10个数量,价格将保持在143,85。

现在,如果我的数量是1.5,那么查询应该返回价格160,65,这意味着找到范围数量所在的位置,然后获得该范围内的最大数量的价格。

2 个答案:

答案 0 :(得分:1)

使用where语句查找大于1.5的所有行;然后使用limitorder by来获取数量最少的行。正如Petah评论的那样,总是包含数量最多的行是很方便的。例如:

select  *
from    quantity_price
where   Quantity > 1.5
        or Quantity = (select max(Quantity) from quantity_price)
order by
        Quantity
limit   1

答案 1 :(得分:1)

select price
from quantity_price
where myquantity >= quantity
order by quantity
limit 1