mysql表中查找和小于某个数的所有最前面的记录 10

例表如下,要查找记录中Name为A,且Value的和小于X的所有最前面的记录。IdNameValue1A202A253B124A185B176A33比如,X=50,那就应... 例表如下,要查找记录中Name为A,且Value的和小于X的所有最前面的记录。
Id Name Value
1 A 20
2 A 25
3 B 12
4 A 18
5 B 17
6 A 33
比如,X=50,那就应该找出记录1和2;X=65,那就应该找出记录1、2、4。
有没有快速的方法呢?还是只能遍历?因为数据很多,几十万条...

谢谢!~
展开
 我来答
来自户部巷绝代佳人的天空
2015-12-10 · 超过20用户采纳过TA的回答
知道答主
回答量:50
采纳率:0%
帮助的人:31.6万
展开全部
我想到一个方法
比如要检索小于100的所有A
step1:将所有A检索出来,并以ID升序,作为表tbl1
step2:通过tbl1,算出没个A的value与前面所有A的value和,作为一个新字段allValue,表tbl2
例:select id,name,value,(select sum(t2.value) from tb1 t2 where t2.id <= t1.id) allValue from tb1 t1
step3:tbl2中allValue小于100的所有数据,应该就是你想要的了

希望能帮到你
追问
谢谢啊 。但step2每条记录都要经历一次查询来计算allvalue,担心记录太多 会很慢。没有快捷的方式的话,就只能这样了。感谢
追答
我也只想到这个办法,技术有限。
我觉得如果允许,可以建个视图,存储过程
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式