DELIMITER $$
USE `sigao_dftx`$$
DROP PROCEDURE IF EXISTS `pass_result`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `pass_result`(
titleName VARCHAR(5000)
)
BEGIN
DECLARE result_value VARCHAR(5000);
DECLARE user_id VARCHAR(50);
DECLARE question_id BIGINT(20);
DECLARE targetuser VARCHAR(80);
DECLARE done INT DEFAULT FALSE;
DECLARE uqCursor CURSOR FOR SELECT o.result,o.userid,o.questionid,o.targetuser FROM userquestion o,sendemailaftercompleted sm,title t WHERE o.targetuser =sm.email AND sm.titleid = t.id AND t.`name`=titleName LIMIT 300;
## 将结束标志绑定到游标
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
TRUNCATE user_topic_score;
##打开游标
OPEN uqCursor;
##开始循环
read_loop: LOOP
##提取游标里的数据
FETCH uqCursor INTO result_value,user_id,question_id,targetuser;
## 声明结束的时候
IF done THEN
LEAVE read_loop;
END IF;
## 提取用户题目和答案
CALL proc_split(result_value,';',user_id,question_id,targetuser);
END LOOP;
## 关闭游标
CLOSE uqCursor;
END$$
DELIMITER ;
DELIMITER $$
USE `sigao_dftx`$$
DROP PROCEDURE IF EXISTS `proc_split`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_split`(
inputstring VARCHAR(5000),
delim VARCHAR(20),
user_id VARCHAR(50),
question_id BIGINT(20),
targetuser VARCHAR(80)
)
BEGIN
DECLARE strlen INT;
DECLARE last_index INT;
DECLARE topicId VARCHAR(50);
DECLARE resultId VARCHAR(50);
DECLARE cur_index INT;
DECLARE cur_char VARCHAR(200);
DECLARE len INT;
DECLARE T_R VARCHAR(50);
SET cur_index=1;
SET last_index=0;
SET strlen=LENGTH(inputstring);
WHILE(cur_index<=strlen) DO
BEGIN
IF SUBSTRING(inputstring FROM cur_index FOR 1)=delim OR cur_index=strlen THEN
SET len=cur_index-last_index-1;
IF cur_index=strlen THEN
SET len=len+1;
END IF;
SET T_R=SUBSTRING(inputstring FROM (last_index+1) FOR len);
SET T_R= REPLACE(T_R,'TopicId:','');
SET T_R=REPLACE(T_R,'Result:','');
SET T_R=REPLACE(T_R,';','');
SET topicId=SUBSTRING(T_R FROM 1 FOR LOCATE('$', T_R)-1);
SET resultId=SUBSTRING(T_R FROM (LOCATE('$', T_R)+1));
##select topic_Id,result_id;
##SET T_R=replace(replace(REPLACE(T_R,';',''),'TopicId:','')),'Result:','');
##INSERT INTO user_topic_score(topic_result,user_id,question_id) VALUES(SUBSTRING(inputstring FROM (last_index+1) FOR len),user_id,question_id);
INSERT INTO user_topic_score(user_id,question_id,topic_id,result_id,targetuser) VALUES(user_id,question_id,topicId,resultId,targetuser);
SET last_index=cur_index;
END IF;
SET cur_index=cur_index+1;
END;
END WHILE;
END$$
DELIMITER ;
相关推荐
MySQL实验报告5(存储过程与函数)(1)(1).pdf
由于存储过程将应用程序绑定到数据库,因此使用存储过程封装业务逻辑将限制应用程序的可移植性。 (5)存储过程的应用场景 1.通常,复杂的业务逻辑需要多条 SQL 语句。这些语句要分别地从客户机发送到服务器,当客户...
MYSQL数据库高级应用宝典含实例(索引、视图、触发器、游标和存储过程)
26.MySQL高级存储过程语法游标基本操作.avi 27.MySQL高级存储过程语法循环获取游标.avi 28.MySQL高级存储过程函数.avi 29.MySQL高级触发器介绍.avi 30.MySQL高级触发器创建及应用.avi └31.MySQL高级触发器查看及...
详细介绍了mysql使用临时表实现强大的存储过程,怎样获得存储过程的返回值,使用了临时表,游标等方法。
│ 7_MySQL存储引擎.mp4 │ 8_MySQL第三范式设计讲解.mp4 │ 9_MySQL数据库设计工具.mp4 │ ├─新版MySQL DBA综合实战班 第06天 │ 1_课堂作业讲解.mp4 │ 2_InnoDB内核之事务和多版本控制.mp4 │ 3_InnoDB底层...
资源包括:mysql视图应用,mysql存储过程,mysql使用游标,mysql使用触发器,mysql事务管理处理,mysql访问控制,mysql数据优化及备份&索引。
mysql的定时job的一个简单应用,采用mysql存储过程的调用方式执行任务。该任务中涉及到使用游标来完成多个update执行过程。
1.5.3MySQL内建的其他存储引擎19 1.5.4第三方存储引擎22 1.5.5选择合适的引擎24 1.5.6转换表的引擎27 1.6MySQL时间线(Timeline)29 1.7MySQL的开发模式32 1.8总结33 第2章MySQL基准测试35 2.1为什么需要...
MySQL数据应用与开发第八章的内容,包括创建存储过程、利用游标处理结果集、创建事件、管理事件等知识。
数据库原理及应用 Database Principle and Application 第八章 数据库编程 第八章 数据库编程 8.1 嵌入式SQL 8.2 存储过程 8.3 ODBC编程 8.4 小结 8.1 嵌入式SQL 这两种方式细节上有差别,在程序设计的环境下, SQL...
MySQL常见的存储引擎InnoDB、MyISAM的区别?【~】 数据库三范式,根据某个场景设计数据表?优缺点 MySQL 索引使用的注意事项 SQL怎么优化 数据库悲观锁和乐观锁的原理和应用场景? 如何做 MySQL 的性能优化? 索引是...
MySQL 是最流行的数据库管理系统之一,为从互联网巨头到个人企业数据库到简单的最终用户应用程序以及介于两者之间的一切提供支持。 本书将教您使用最新版本的 MySQL 立即提高工作效率所需了解的所有知识。 通过学习 ...
MySQL数据应用与开发第八章的内容,包括创建存储过程、利用游标处理结果集、创建事件、管理事件等知识。
例1、一个简单存储过程游标实例 代码如下: DELIMITER $$ DROP PROCEDURE IF EXISTS getUserInfo $$CREATE PROCEDURE getUserInfo(in date_day datetime)— — 实例— 存储过程名为:getUserInfo— 参数为:date_day...
13.5.3 游标和控制结构 13.6 进一步学习 13.7 下一章 第三篇 电子商务与安全性 第14章 运营一个电子商务网站 14.1 我们要实现什么目标 14.2 考虑电子商务网站的类型 14.2.1 使用在线说明书公布信息 14.2.2 ...
13.5.3 游标和控制结构 13.6 进一步学习 13.7 下一章 第三篇 电子商务与安全性 第14章 运营一个电子商务网站 14.1 我们要实现什么目标 14.2 考虑电子商务网站的类型 14.2.1 使用在线说明书公布信息 14.2.2 接收产品...
数据库对象表时存储和操作数据的逻辑结构,而数据库对象存储过程和函数,则是用来实现将一组关于表操作的sql语句... 存储过程和函数可以简单理解为一条或多条sql语句的集合。存储过程和函数就是事先经过编译并存储在数