Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 查询以获取所有记录,直到列的总和小于或等于某个值_Mysql_Sql - Fatal编程技术网

Mysql 查询以获取所有记录,直到列的总和小于或等于某个值

Mysql 查询以获取所有记录,直到列的总和小于或等于某个值,mysql,sql,Mysql,Sql,我想得到一个表中的所有记录,直到一个特定列的和小于或等于'n' 例如: 表:数据 slno item price 1 item1 1000 2 item2 2000 3 item3 3000 4 item4 4000 5 item5 5000 6 item6 6000 我想从上表中获取所有记录,直到sumprice小于或等于1000

我想得到一个表中的所有记录,直到一个特定列的和小于或等于'n'

例如:

表:数据

slno item price 1 item1 1000 2 item2 2000 3 item3 3000 4 item4 4000 5 item5 5000 6 item6 6000 我想从上表中获取所有记录,直到sumprice小于或等于10000

因此,根据上表,我的结果将是前4条记录。

您可以这样做

选择单号、项目、价格 从…起 选择单号、项目、价格、@t:=@t+价格合计 从表1交叉连接选择@t:=0 i slno订购 Q
total可以用php或类似的东西来实现这一点。使用PL/SQL,因为它还需要进行一些编程。可能有用谢谢你的询问。这符合我的期望,但由于我的表有大量数据,执行起来需要很多时间。你能给我一个性能更好的优化查询吗?你能给我一个性能更好的优化查询吗?因为上面的查询需要更多的时间来执行,因为我使用的表有大量的数据。这两个查询都需要全表扫描。因此,要提高性能,需要做的一件事是限制源行的数量,例如,通过引入一个带有slno的WHERE子句,或针对该物质范围的其他列,如WHERE slno介于1和10之间或slno<5000。。。