MySql数据库通过父级ID获取所有子级ID(无穷级)

 时间:2026-02-12 09:33:19

1、我使用的数据库客户端为:Navicate

点击工具栏的【工具】-> 【命令行界面】,执行如下命令:

set global log_bin_trust_function_creators=TRUE;

注意:执行该命令需要有数据库的某些权限,必要时候可以让运维管理员进行操作。

MySql数据库通过父级ID获取所有子级ID(无穷级)

2、创建函数:

CREATE  FUNCTION `getChildList`(`rootId` VARCHAR(32)) RETURNS varchar(4000) CHARSET utf8

BEGIN

       DECLARE sTemp VARCHAR(4000);

       DECLARE sTempChd VARCHAR(4000);

    

       SET sTemp = '';

       SET sTempChd =cast(rootId as CHAR);

    

       WHILE sTempChd is not null DO

         SET sTemp = concat(sTemp,',',sTempChd);

         SELECT group_concat(SUB_ID) INTO sTempChd FROM ZITO_ERP_PRO_SUB where FIND_IN_SET(SUB_PARENT_ID,sTempChd)>0;

       END WHILE;

       RETURN sTemp;

     END

3、函数创建成功,可以进行测试。

点击【运行函数】,需要输入参数,参数输入时一定要用单引号修饰。如图:

MySql数据库通过父级ID获取所有子级ID(无穷级)

4、myBatis执行查询操作:

select GROUP_CONCAT(SUB_ID) from ZITO_ERP_PRO_SUB

    where FIND_IN_SET(SUB_ID, getChildList(#{0}))

注意:${0} 为传过来的父ID参数。

  • 怎样用setInterval和setTimeout实现显示时间?
  • servlet页面间数据传递的方法
  • MyEclipse如何部署项目运行tomcat
  • intellij idea关闭运行进程窗口设置为终止进程
  • 如何拍摄双肩背包
  • 热门搜索
    呈现的意思 今年的三伏天从什么时候开始 毅力的意思 妖魔鬼怪的意思 升华的意思 重阳节送什么 春望的意思 宵衣旰食的意思 定向招生是什么意思 入职背景调查都查什么