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: