这样定义的函数,用一个根节点查询,发现不能把所有地区信息查询出来
数据量大概有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;