mysql变量赋值要注意的

页面导航:首页 > 数据库 > Mysql > mysql变量赋值要注意的

mysql变量赋值要注意的

来源: 作者: 时间:2016-02-17 10:07 【

mysql变量赋值要注意的mysqlsql今天由于项目需要,需要写个存储过程,这个可是一年才难得写一次。于是没办法,重新捡起来。开始写写到后来。。Sql代码 CREATE FUNCTION `getChildLstnotSun`(de
变量赋值要注意的
 
mysqlsql 
今天由于项目需要,需要写个存储过程,这个可是一年才难得写一次。于是没办法,重新捡起来。开始写 
写到后来。。 
Sql代码  
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循环字符串拼接的代码 
 
Sql代码  
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函数最好只用在字符串字段上
 
 
Tags:

文章评论

最 近 更 新
热 点 排 行
Js与CSS工具
代码转换工具

<