mysql7筆記----遍歷節點全部子節點

mysql遍歷節點的全部子節點
DELIMITER //
CREATE FUNCTION `getChildrenList`(rootId INT)
RETURNS VARCHAR(500)
BEGIN
DECLARE sTemp VARCHAR(500);
DECLARE sTempChd VARCHAR(1000);
SET sTemp = '';
SET sTempChd =CAST(rootId AS CHAR);
WHILE sTempChd IS NOT NULL DO
SET sTemp = CONCAT(sTemp,',',sTempChd);
SELECT GROUP_CONCAT(id) INTO sTempChd FROM employees WHERE FIND_IN_SET(parent_id,sTempChd)>0;
END WHILE;
RETURN sTemp;
END

SELECT getChildrenList(2);

 

 

 

FIND_IN_SET(str,strlist): 假如字符串str 在由N 子鏈組成的字符串列表strlist 中,則返回值的範圍在 1 到 N 之間,不然返回0

GROUP_CONCAT(id) INTO sTempChd:把無重複id放進sTempChd:

相關文章
相關標籤/搜索