MySQL存储过程之计算某列值之和小于固定值的所有累加行ID
来源:互联网 发布:淘宝什么假货最多 编辑:程序博客网 时间:2024/06/05 16:06
简单表结构如下:
要求的的话,也就是通过将test中的value值累加(ID升序排列),类似于贪心算法,尽可能多加,但是和得小于450,那么将所有满足的行ID打印出来
(注意:会多直到值大于450停止,也就是会多添加一个ID,需要调用程序进行相关控制)。
-- 初始化drop procedure if exists useCursor;-- 建立 存储过程 createCREATE PROCEDURE useCursor() BEGIN -- 局部变量的定义 declaredeclare total INT default 0 ;declare tmpid INT default 0 ;declare tmp INT default 0 ; declare allId varchar(255) default '' ; declare cur1 CURSOR FOR SELECT value FROM test.test ORDER BY id ASC ; declare cur2 CURSOR FOR SELECT id FROM test.test ORDER BY id ASC; -- 开游标 OPEN cur1; OPEN cur2; -- 游标向下走一步 FETCH cur1 INTO tmp; FETCH cur2 INTO tmpid; repeat set total = total + tmp;set allId = CONCAT(allId ,CONCAT(tmpid ,";")) ;-- 游标向下走一步FETCH cur1 INTO tmp;FETCH cur2 INTO tmpid; until total > 450 end repeat; /* -- 循环体 WHILE ( total <= 450 ) DOset total = total + tmp; set tmpName = CONCAT(tmpid ,";") ; set allName = CONCAT(allName ,tmpName) ; -- 游标向下走一步 FETCH cur1 INTO tmp;FETCH cur2 INTO tmpid; END WHILE;*/ CLOSE cur1; CLOSE cur2; select allId ;END;call useCursor()
0 0
- MySQL存储过程之计算某列值之和小于固定值的所有累加行ID
- 更新表所有id的存储过程
- mysql存储过程插入固定数量测试数据
- mysql查看所有存储过程
- mysql查看所有存储过程
- mysql查看所有存储过程
- mysql查看所有存储过程
- mysql查看所有存储过程
- mysql 查看所有存储过程
- mysql查看所有存储过程
- mysql查看所有存储过程
- mysql查看所有存储过程
- mysql查看所有存储过程
- mysql在存储过程中根据父id查找所有下级节点,递归
- 用命令行导出mysql库里面所有的存储过程以及存储函数
- MYSQL 查询包含某个数据表的所有存储过程
- 查询Mysql数据库的所有存储过程和函数
- MySQL存储过程-插入后返回ID
- c# mysql blog 读与写
- 文本匹配
- eclipse下安装c/c++开发环境
- 大学学习笔记—单片机第二章
- 大学学习笔记—单片机第三章
- MySQL存储过程之计算某列值之和小于固定值的所有累加行ID
- “Microsoft Visual Studio 2010 遇到了异常,可能是由某个扩展导致的”
- 大学学习笔记—单片机第四章
- [bzoj2733]永无乡 [bzoj1503]郁闷的出纳员
- 大学学习笔记—单片机第五章
- android中this、Activity.this、context区别与联系
- MySQL连接到C++
- Unique Binary Search Trees (Java)
- opencv CvCreateImage函数说明