有这张桌子
#table stock
+-------+----------+
| id | stock |
+-------+----------+
| 1 | 20 |
+-------+----------+
| 2 | 25 |
+-------+----------+
| 3 | 10 |
+-------+----------+
| 4 | 20 |
+-------+----------+
#note: this is an arbitrary random data
我如何继续从表中选择行,直到stock列的sum()达到某个值或更高一些,并且表为ORDER BY id ASC.
例如,我要从表中选择行,直到总存量为’50’,因此结果将是
#result 3 rows
+-------+----------+
| id | stock |
+-------+----------+
| 1 | 20 |
+-------+----------+
| 2 | 25 |
+-------+----------+
| 3 | 10 |
+-------+----------+
现在的库存总和为’55’,这是比’50’最接近的可能更高的值,如果我们采用下一行id:4,则库存总和将大于50,并且如果删除行id:3价值将是45,小于我要的股票50.
我可以通过选择所有行并循环抛出它们来使用PHP来实现,但是我想那会很浪费.有没有可能在较低级别上做到这一点,并让mysql通过sql查询为我做到这一点?
谢谢你,如果我搞砸了,请原谅我,我是编程新手