我有一张包含以下信息的表:
id | Item ID | stock_package_id | amount | price
0 | 775 | 1 | 16 | 0.22
1 | 758 | 2 | 10 | 0.28
2 | 775 | 3 | 10 | 0.30
3 | 774 | 4 | 10 | 0.25
4 | 775 | 5 | 10 | 0.10
5 | 775 | 6 | 10 | 0.55
我的问题是我正在尝试创建一个查询(尽可能简单,因为该表将与其他一些表保持连接),该查询将允许我输入金额:
e.g.
我想要 22 个 Item_Id 775 首先从最便宜的价格中选择。
所以我想要返回的是:
id | Item ID | stock_package_id | amount | price
4 | 775 | 5 | 10 | 0.10
0 | 775 | 1 | 12 | 0.22 - this is only 12 as we only want 22 total
一个伪例子:
从stock_table中选择直到总和amount
等于或大于输入数字 (22) 按价格排序
这可以用MySql 来做吗?
你需要使用ORDER BY
子句对记录进行排序price
column:
SELECT *
FROM table_name
WHERE Item_ID = 775
ORDER BY price ASC
LIMIT 22;
如果你想获取记录直到sum(price)
变成value
(22) 然后试试这个:
SELECT *
FROM table_name, (SELECT @var_price := 0) a
WHERE Item_ID = 775 AND
(@var_price := @var_price + price) <= 22
ORDER BY price ASC;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)