mysql 结束符报错_【踩坑记录】MySQL 实现自定义递归函数

因项目需要,需根据某个商品类别path,查询该类别下的所有子类别表 goods-categories(path,parent_id,id)该处使用的表为临时创建的表 t1(id,parent_id,code)最终成品代码:DELIMITER //drop function if exists f1;create function f1(tableId int)returns VARCHAR(20...
摘要由CSDN通过智能技术生成

因项目需要,需根据某个商品类别path,查询该类别下的所有子类别

表  goods-categories(path,parent_id,id)

该处使用的表为临时创建的表 t1(id,parent_id,code)

最终成品代码:

DELIMITER //

drop function if exists f1;

create function f1(tableId int)

returns VARCHAR(200)

begin

declare p1 varchar(2000);

declare p2 varchar(200);

declare p3 varchar(200);

declare p4 varchar(200);

set p1 ='';

set p3 ='';

set p4 ='';

set p2 = cast(tableId as char);

while p2 is not null do

set p1 = concat(p1,',',p3);

set p4 = p2;

select group_concat(id) into p2 from t1

where find_in_set(parent_id,p2)>0;

select group_concat(code) into p3 from t1

where find_in_set(parent_id,p4)>0;

end while;

<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值