MySQL查询帮助

Asi*_*lla 5 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,这意味着找到范围数量所在的位置,然后获得该范围内的最大数量的价格.

And*_*mar 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
Run Code Online (Sandbox Code Playgroud)