mysql存储过程用游标解决返回的结果级并拼装字符
来源:互联网 发布:网络电玩 编辑:程序博客网 时间:2024/04/30 04:44
1.昨天遇到到一个问题.提问没有人回复,那个郁闷啊,无奈只有自己晚上回去自己解决.
得出解决办法,希望可以帮到和我遇到同意问题的同学们.也当自己的笔记记录吧.
BEGIN##输入参数 '',29(用户id),'zxx-sxjcjy-34752-34752-34754-29'(courseid) DECLARE done INT DEFAULT 0;DECLARE classIds varchar(500) DEFAULT ''; ##班级id字符型DECLARE classIdsNew varchar(500) DEFAULT '';DECLARE classIdsAll varchar(500) DEFAULT '';DECLARE classIdsAllNew varchar(500) DEFAULT '';## classIds 截取字符后的 aa,bb 形式DECLARE dateNew LONG; ##当前时间long型DECLARE dateNewString VARCHAR(100) DEFAULT ''; ##当前时间 DECLARE endDateString VARCHAR(100) DEFAULT ''; ##结束时间 :比当前时间多 7天##创建游标DECLARE mycursor CURSOR FOR select teaching_class_id from sxjcjy_t_teaching_class_user_relation where user_id = userId and course_id = courseId;DECLARE CONTINUE HANDLER FOR NOT FOUND SET done =1;##把当前系统时间转为long型 以便下面使用set dateNew = UNIX_TIMESTAMP(curdate()) *1000;##得到当前系统时间 2013-09-29 15:46:59 型 下面用set dateNewString = NOW();##结束时间 :比当前时间多 7天 下面添加数据时用set endDateString = date_add(NOW(), interval 7 Day);##给讨论里面插入数据##1.根据courseId和userId得到courseNameselect course_name into courseName from sxjcjy_t_course_user_relation where course_id = courseId and user_id = userId limit 1;##2.根据courseId和userId得到学科下的classId(字符串)多个OPEN mycursor;##启动游标REPEATFETCH mycursor INTO classIdsNew;IF NOT done THENset classIdsNew = CONCAT(classIdsNew,",");set classIdsAll = CONCAT(classIdsAll,classIdsNew);##合并字符串set classIdsAllNew = `LEFT`(classIdsAll,LENGTH(classIdsAll)-1);##截取字符串END IF;UNTIL done END REPEAT;CLOSE mycursor;insert into sxjcjy_t_bbs_topic(course_id,course_name,title,creater_id,creater_name,content,view_count,create_time,class_id)values(courseId,courseName,'信息技术基础上完后大家觉得都学到些什么呢?',userId,userName,'信息技术基础上完后大家觉得都学到些什么呢?',0,dateNew,classIdsAllNew);END
1.原因是insert into 语句里面有个字段是 aa,bb 这中存储的,所以需要拼接字符串.(木有办法啊,淫家数据库是这样设计的)
2.注:DECLARE这种声明的变量包括游标 都必须在存过的最上面,BEGIN 的下面.
- mysql存储过程用游标解决返回的结果级并拼装字符
- 如何在mysql存储过程中处理select语句返回的多行结果(用游标)
- 通过游标读取oracle存储过程返回的结果集
- 用游标返回结果集的的例子(Oracle 存储过程)
- mysql简单存储过程创建并返回执行结果
- mysql存储过程 游标 查询结果循环
- mysql存储过程 游标 查询结果循环
- Sybase调用存储过程并返回结果
- 执行Oracle存储过程返回游标结果集
- 存储过程使用游标变量返回结果集
- 存储过程使用游标变量返回结果集(推荐)
- SSM-Mybatis调用Oracle存储过程返回结果集(游标)
- mysql调用存储过程无法返回结果集的问题
- php调用mysql存储过程返回结果集的处理
- php调用mysql存储过程返回结果集的处理
- 存储过程返回游标
- 存储过程返回游标
- 利用游标返回结果集的的例子(Oracle 存储过程)
- linux内核-进程调度
- java基础--日期
- C语言字符串格式化显示
- UICollectionView
- ajax 传递参数;省的找了 附带trim 方法; 注意url路径;
- mysql存储过程用游标解决返回的结果级并拼装字符
- 在windows下用cygwin和eclipse搭建cocos2dx的android开发环境
- Linux开发者需要知道的10个技巧--转自IBM developerworks
- C中字符串的几种定义方法及说明
- 找工作知识储备(2)---数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串
- input的file名改变与值获取
- How Improved Short-Circuit Local Reads Bring Better Performance and Security to Hadoop
- 计算机书
- 【使用线程池的好处】多线程的环境中,尽量采用线程池