mysql 函数问题
时间:2011-07-09
来源:互联网
请问mysql的自定义函数怎么建啊。可不可以不要返回值,可不可以向存储过程那样就执行一段语句,不要返回值。下面这段存储过程怎么样转成自定义函数。
create procedure tran()
BEGIN
DECLARE ID VARCHAR(40);
DECLARE ID1 VARCHAR(40);
DECLARE DT VARCHAR(40);
DECLARE done INT;
DECLARE Y VARCHAR(40);
DECLARE M VARCHAR(40);
DECLARE R VARCHAR(40);
DECLARE TEMP VARCHAR(40);
DECLARE DT1 VARCHAR(40);
DECLARE CUR_TRAN CURSOR FOR SELECT MEMBERID,PRODUCTID,date from reviewsnew;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;
OPEN CUR_TRAN;
REPEAT FETCH CUR_TRAN into ID,ID1, DT;
SET DT1=DT;
SET Y=SUBSTRING_INDEX(DT,',',-1);
SET M=SUBSTRING_INDEX(DT,' ',1);
SET TEMP=SUBSTRING_INDEX(DT,',',1);
SET R=SUBSTRING_INDEX(TEMP,' ',-1);
IF M like 'January' THEN
SET TEMP=concat(Y,'-','01-',R);
END IF;
IF M like 'February' THEN
SET TEMP=concat(Y,'-','02-',R);
END IF;
IF M like 'March' THEN
SET TEMP=concat(Y,'-','03-',R);
END IF;
IF M like 'April' THEN
SET TEMP=concat(Y,'-','04-',R);
END IF;
IF M like 'May' THEN
SET TEMP=concat(Y,'-','05-',R);
END IF;
IF M like 'June' THEN
SET TEMP=concat(Y,'-','06-',R);
END IF;
IF M like 'July' THEN
SET TEMP=concat(Y,'-','07-',R);
END IF;
IF M like 'August' THEN
SET TEMP=concat(Y,'-','08-',R);
END IF;
IF M like 'Septemper' THEN
SET TEMP=concat(Y,'-','09-',R);
END IF;
IF M like 'October' THEN
SET TEMP=concat(Y,'-','10-',R);
END IF;
IF M like 'November' THEN
SET TEMP=concat(Y,'-','11-',R);
END IF;
IF M like 'December' THEN
SET TEMP=concat(Y,'-','12-',R);
END IF;
update reviewsnew set date=TEMP WHERE MEMBERID=ID AND PRODUCTID=ID1 AND date=DT1;
until done=1 end repeat;
CLOSE CUR_TRAN;
END
create procedure tran()
BEGIN
DECLARE ID VARCHAR(40);
DECLARE ID1 VARCHAR(40);
DECLARE DT VARCHAR(40);
DECLARE done INT;
DECLARE Y VARCHAR(40);
DECLARE M VARCHAR(40);
DECLARE R VARCHAR(40);
DECLARE TEMP VARCHAR(40);
DECLARE DT1 VARCHAR(40);
DECLARE CUR_TRAN CURSOR FOR SELECT MEMBERID,PRODUCTID,date from reviewsnew;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;
OPEN CUR_TRAN;
REPEAT FETCH CUR_TRAN into ID,ID1, DT;
SET DT1=DT;
SET Y=SUBSTRING_INDEX(DT,',',-1);
SET M=SUBSTRING_INDEX(DT,' ',1);
SET TEMP=SUBSTRING_INDEX(DT,',',1);
SET R=SUBSTRING_INDEX(TEMP,' ',-1);
IF M like 'January' THEN
SET TEMP=concat(Y,'-','01-',R);
END IF;
IF M like 'February' THEN
SET TEMP=concat(Y,'-','02-',R);
END IF;
IF M like 'March' THEN
SET TEMP=concat(Y,'-','03-',R);
END IF;
IF M like 'April' THEN
SET TEMP=concat(Y,'-','04-',R);
END IF;
IF M like 'May' THEN
SET TEMP=concat(Y,'-','05-',R);
END IF;
IF M like 'June' THEN
SET TEMP=concat(Y,'-','06-',R);
END IF;
IF M like 'July' THEN
SET TEMP=concat(Y,'-','07-',R);
END IF;
IF M like 'August' THEN
SET TEMP=concat(Y,'-','08-',R);
END IF;
IF M like 'Septemper' THEN
SET TEMP=concat(Y,'-','09-',R);
END IF;
IF M like 'October' THEN
SET TEMP=concat(Y,'-','10-',R);
END IF;
IF M like 'November' THEN
SET TEMP=concat(Y,'-','11-',R);
END IF;
IF M like 'December' THEN
SET TEMP=concat(Y,'-','12-',R);
END IF;
update reviewsnew set date=TEMP WHERE MEMBERID=ID AND PRODUCTID=ID1 AND date=DT1;
until done=1 end repeat;
CLOSE CUR_TRAN;
END
作者: junlong3636 发布时间: 2011-07-09
有返回值你不用不就行了吗
作者: rucypli 发布时间: 2011-07-09
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28