今天由于项目需要,需要写个存储过程,这个可是一年才难得写一次。于是没办法,重新捡起来。开始写
写到后来。。
需要有个类似于for循环字符串拼接的代码
结果调试了半天,这个sTemp变量就是不出来.
最后开始奇思妙想。
结果在 SET fetchSeqOk=false;后面加上了 set sTemp='';
这时候才出来了。尼玛,原来这个是需要初始化一下的
顺便记一下,mysql的group_concat函数最好只用在字符串字段上
写到后来。。
CREATE FUNCTION `getChildLstnotSun`(department_id int)
RETURNS varchar(1000)
BEGIN
DECLARE sTemp VARCHAR(1000);
DECLARE sTempChd int;
declare fetchSeqOk boolean;
declare cur1 CURSOR FOR SELECT departmentId FROM sys_department_info where fatherDepartmentId=department_id;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET fetchSeqOk=true;
SET fetchSeqOk=false;
OPEN cur1;
fetchSeqLoop:Loop
FETCH cur1 INTO sTempChd;
if fetchSeqOk then
leave fetchSeqLoop;
else
SET sTemp := concat(sTemp,',',sTempChd);
end if;
end loop;
CLOSE cur1;
RETURN sTemp;
END
需要有个类似于for循环字符串拼接的代码
OPEN cur1;
fetchSeqLoop:Loop
FETCH cur1 INTO sTempChd;
if fetchSeqOk then
leave fetchSeqLoop;
else
SET sTemp := concat(sTemp,',',sTempChd);
end if;
end loop;
CLOSE cur1;
结果调试了半天,这个sTemp变量就是不出来.
最后开始奇思妙想。
结果在 SET fetchSeqOk=false;后面加上了 set sTemp='';
这时候才出来了。尼玛,原来这个是需要初始化一下的
顺便记一下,mysql的group_concat函数最好只用在字符串字段上