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