mysql query tree directory for all child nodes

DELIMITER //
 CREATE FUNCTION `getChildLst`(rootId INT)
   RETURNS VARCHAR(1000)
   BEGIN
    DECLARE sTemp VARCHAR(1000);
    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_DIRECTORY) INTO sTempChd FROM r_directory WHERE FIND_IN_SET(ID_DIRECTORY_PARENT,sTempChd)>0;
    END WHILE;
    RETURN sTemp;
   END
   //
   
SELECT * FROM r_directory WHERE FIND_IN_SET(ID_DIRECTORY, getChildLst(1));

  

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324971089&siteId=291194637
Recommended