• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

MYSQL 自定义函数,查询节点所有父节点、查询节点所有子节点

互联网 diligentman 6天前 4次浏览

一.查询所有父节点。

1.sql代码

select getParentIdList(3402)

2.创建函数

    CREATE DEFINER=`skip-grants user`@`skip-grants host` FUNCTION `getParentIdList`(rootId INT) RETURNS varchar(1000) CHARSET utf8mb4
    DETERMINISTIC
BEGIN   
DECLARE fid INT default 0;   
DECLARE str varchar(1000) default rootId;   
 
WHILE rootId is not null  do   
    SET fid =(SELECT pid FROM t_space WHERE id = rootId);   
    IF fid is not null THEN   
        SET str = concat(str, ‘,’, CAST(fid AS CHAR));   
        SET rootId = fid;   
    ELSE   
        SET rootId = fid;   
    END IF;   
END WHILE;   
return str;  
END

二.查询所有子节点

1.sql代码
     select getChildrenIdList(1)

2.创建函数

CREATE DEFINER=`skip-grants user`@`skip-grants host` FUNCTION `getChildrenIdList`(rootId INT) RETURNS varchar(1000) CHARSET utf8mb4
    DETERMINISTIC
BEGIN
   DECLARE sTemp VARCHAR(1000) default rootId;
   DECLARE sTempChd VARCHAR(1000);   
  
   SET sTempChd =cast(rootId as CHAR);
 
   WHILE sTempChd is not null do
     if sTemp<>sTempChd then 
               SET sTemp = concat(sTemp,’,’,sTempChd);
     END IF;
     SELECT group_concat(id) INTO sTempChd FROM unify_space_database.t_space where FIND_IN_SET(pid,sTempChd);
    END WHILE;
    RETURN sTemp;
   END

展开阅读全文

mysqlunify

© 著作权归作者所有

举报

打赏

0


0 收藏

微信
QQ
微博

分享

作者的其它热门文章

centos 7 上安装与配置tomcat 7 (整理)
IntelliJ IDEA详细配置和使用教程(适用于Java开发人员)
突然访问页面net::ERR_CONTENT_LENGTH_MISMATCH错误,nginx配置无错
cpu 100% mysql占用太多 优化mysql


喜欢 (0)