mysql 遞歸查詢父節點 和子節點


NAVICAT中截圖

表結構如下圖

隨便創建一個類型的表格查詢數據

查詢父節點

代碼如下

BEGIN   
DECLARE i varchar(100) default '';   
DECLARE j varchar(1000) default rootId;   
  
WHILE rootId is not null  do   
    SET i =(SELECT parent_id FROM paternal_tree WHERE id = rootId);   
    IF i is not null THEN   
        SET j = concat(j, ',', i);   
        SET rootId = i;   
    ELSE   
        SET rootId = i;   
    END IF;   
END WHILE;   
return j;  
END

  截圖如下所示

 

注意下方需要加入的參數,和返回類型,類型選對。最后調用該函數就行

 

查詢子節點類似,這里貼上代碼就行。

BEGIN   
DECLARE str varchar(2000);  
DECLARE cid varchar(100);   
SET str = '$';   
SET cid = rootId;   
WHILE cid is not null DO   
    SET str = concat(str, ',', cid);   
    SELECT group_concat(id) INTO cid FROM paternal_tree where FIND_IN_SET(parent_id, cid) > 0;   
END WHILE;   
RETURN str;   
END

這里在調用就行。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM