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);