程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql變量賦值要注意的

mysql變量賦值要注意的

編輯:MySQL綜合教程

mysql變量賦值要注意的   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函數最好只用在字符串字段上    

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved