mysql 自定义函数 查询树结构

这样定义的函数,用一个根节点查询,发现不能把所有地区信息查询出来
数据量大概有6000吧,只能查出几百个

CREATE TABLE `tb_area` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(32) DEFAULT NULL,
  `code` varchar(20) DEFAULT NULL,
  `pcode` varchar(20) DEFAULT NULL, 
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=21920 DEFAULT CHARSET=utf8 |
drop function getChildLst;
CREATE FUNCTION getChildLst(rootCode varchar(20))
RETURNS text(120000)
BEGIN
      DECLARE sTemp text(120000);
    DECLARE sTempChd text(120000);

    SET sTemp = '$';
    SET sTempChd = cast(rootCode as CHAR);
    
    WHILE sTempChd is not null DO 
        SET sTemp = concat(sTemp,',',sTempChd);
        SELECT group_concat(code) INTO sTempChd FROM  tb_area where FIND_IN_SET(pcode,sTempChd);
        
       END WHILE;
    RETURN sTemp;
END;
阅读 3k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题