MYSQL樹結構,查詢所有子元素ID,函數


-- ppid參數(因為和下邊pid重復),查詢sql自行替換,數據庫名自行替換

CREATE DEFINER=`by`@`%` FUNCTION `getUserChilds`(`ppid` INT) RETURNS varchar(4000) CHARSET utf8
    NO SQL
BEGIN
    DECLARE sTemp VARCHAR(4000);
    DECLARE sTempChd VARCHAR(4000);
    
    SET sTemp='';
    SET sTempChd = CAST(ppid AS CHAR);
    WHILE sTempChd IS NOT NULL DO
    SET sTemp= CONCAT(sTemp,',',sTempChd);
    SELECT GROUP_CONCAT(id) INTO sTempChd FROM by_user WHERE FIND_IN_SET(pid,sTempChd)>0;
    END WHILE;
    RETURN sTemp ;
END

-- 返回的是 '1,2,3,4,5' 的字符串
-- pid參數, 查詢sql如下:
select * from user bul where FIND_IN_SET(id, getUserChilds(pid))

 


免責聲明!

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



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