MySQL實現樹狀所有子節點查詢的方法

 mysql 添加一個函數  getChild  
CREATE DEFINER=`root`@`localhost` FUNCTION `getChild`(rootId INT) RETURNS varchar(1000) CHARSET utf8
BEGIN
        DECLARE ptemp VARCHAR(1000);
        DECLARE ctemp VARCHAR(1000);
               SET ptemp = '#';
               SET ctemp =CAST(rootId AS CHAR);
               WHILE ctemp IS NOT NULL DO
                 SET ptemp = CONCAT(ptemp,',',ctemp);
                SELECT GROUP_CONCAT(id) INTO ctemp FROM fht_ams_dept   
                WHERE FIND_IN_SET(pid,ctemp)>0; 
               END WHILE;  
               RETURN ptemp;  
    END

 

@Query(value = " select id from fht_ams_dept where find_in_set(id,getChild(?1))" ,nativeQuery = true)
List<Long> findAllDeptId(Long pid);

 

遞歸獲取當前節點下面的所有子節點數據

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章