mysql 無限遞歸

1、先創建函數getChildId_bas_basic_tree  如下:

BEGIN 
    DECLARE pTemp Varchar(21845);               
    DECLARE cTemp Varchar(21845);      -- 節點ID(臨時變量)

    SET pTemp = '';  
    SET cTemp =cast(rootId as CHAR);  -- 把rootId強制轉換爲字符。
        
        WHILE cTemp is not null DO  
            SET pTemp = concat(pTemp,',',cTemp);  -- 把所有節點連接成字符串。
            SELECT group_concat(childid) INTO cTemp FROM ranks 
            WHERE FIND_IN_SET(parentid,cTemp)>0;
        END WHILE;  
        
    RETURN pTemp;  
END

2、調用函數:

    SELECT
                childid,parentId
            FROM 
                ranks T,
                (SELECT @DATAS := getChildId_bas_basic_tree (1404)) a
            WHERE find_in_set (childid, @DATAS);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章