如果创建函数报错,设置下属性 仅当前连接有效

set global log_bin_trust_function_creators=TRUE;

注意sTemp的长度,如果是数字VARCHAR(1000)够用,如果是uuid则弄成了大字段text 树形菜单不会太多记录

DROP FUNCTION IF EXISTS getMenuChildList;
CREATE FUNCTION `getMenuChildList`(rootId CHAR(32))
    RETURNS text
BEGIN
    DECLARE sTemp text;
    DECLARE sTempChd VARCHAR(1000);


    SET sTemp = '$';
    SET sTempChd =cast(rootId as CHAR);


    WHILE sTempChd is not null DO
    SET sTemp = concat(sTemp,',',sTempChd);
    SELECT group_concat(menu_code) INTO sTempChd FROM  sys_menu where FIND_IN_SET(parent_code,sTempChd)>0;
    END WHILE;
    RETURN sTemp;
END
select * from  sys_menu where FIND_IN_SET(menu_code ,getMenuChildList('0001222'));

标签: mysql树查询


阿里云优惠主机

添加新评论

免责声明
本博客部分内容来自于互联网,不代表作者的观点和立场,如若侵犯到您的权益,请联系[email protected]。我们会在24小时内进行删除。