Mysql递归查询

本文介绍了如何在MySQL中创建和使用用户自定义函数。通过设置全局变量允许创建函数,然后展示了创建名为`getChildId_bas_basic_tree`的函数的步骤,该函数用于将节点ID连接成字符串。最后,给出了调用这个函数的示例。
摘要由CSDN通过智能技术生成

查询MySql是否可以创建函数

show variables like '%func%';

不可执行则执行本条SQL

set global log_bin_trust_function_creators=1;

创建

-- 在navcat中的查询下执行以下命令

drop function if exists getChildId_bas_basic_tree;

DELIMITER //
create function getChildId_bas_basic_tree(tag_id INT) 
returns varchar (4000)
BEGIN 
    DECLARE sTemp VARCHAR(4000);            
    DECLARE sTempChd VARCHAR(4000);      -- 节点ID(临时变量)

    SET sTemp = '$';  
    SET sTempChd =cast(tag_id AS CHAR);  -- 把areaId强制转换为字符。

    WHILE sTempChd is not null DO  
       SET sTemp = concat(sTemp, ',', sTempChd);  -- 把所有节点连接成字符串。
       SELECT group_concat(id) INTO sTempChd FROM tag_item_info   
       WHERE FIND_IN_SET(parent_id, sTempChd)>0;
    END WHILE;  
    RETURN sTemp;  
END //
DELIMITER ;


调用

SELECT getChildId_bas_basic_tree(1);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值