设为首页 加入收藏

TOP

mysql递归查询树形表(二)
2015-11-21 01:58:38 来源: 作者: 【 】 浏览:1
Tags:mysql 查询 树形
', '0', 'xx省4', '1', '0'); INSERT INTO `t_areainfo` VALUES ('50', '0', 'xx省5', '1', '0'); INSERT INTO `t_areainfo` VALUES ('51', '0', 'xx省6', '1', '0'); INSERT INTO `t_areainfo` VALUES ('52', '0', 'xx省7', '1', '0'); INSERT INTO `t_areainfo` VALUES ('53', '0', 'xx省8', '1', '0'); INSERT INTO `t_areainfo` VALUES ('54', '0', 'xx省9', '1', '0'); INSERT INTO `t_areainfo` VALUES ('55', '0', 'xx省10', '1', '0'); INSERT INTO `t_areainfo` VALUES ('56', '0', 'xx省11', '1', '0'); INSERT INTO `t_areainfo` VALUES ('57', '0', 'xx省12', '1', '0'); INSERT INTO `t_areainfo` VALUES ('58', '0', 'xx省13', '1', '0'); INSERT INTO `t_areainfo` VALUES ('59', '0', 'xx省14', '1', '0'); INSERT INTO `t_areainfo` VALUES ('60', '0', 'xx省15', '1', '0'); INSERT INTO `t_areainfo` VALUES ('61', '0', 'xx省16', '1', '0'); INSERT INTO `t_areainfo` VALUES ('62', '0', 'xx省17', '1', '0'); INSERT INTO `t_areainfo` VALUES ('63', '0', 'xx省18', '1', '0'); INSERT INTO `t_areainfo` VALUES ('64', '0', 'xx省19', '1', '0'); --方式一:采用function获取所有子节点的id --查询传入areaId及其以下所有子节点 delimiter // DROP FUNCTION IF EXISTS queryChildrenAreaInfo; CREATE FUNCTION `queryChildrenAreaInfo` (areaId INT) RETURNS VARCHAR(4000) BEGIN DECLARE sTemp VARCHAR(4000); DECLARE sTempChd VARCHAR(4000); SET sTemp = '$'; SET sTempChd = cast(areaId as char); WHILE sTempChd is not NULL DO SET sTemp = CONCAT(sTemp,',',sTempChd); SELECT group_concat(id) INTO sTempChd FROM t_areainfo where FIND_IN_SET(parentId,sTempChd)>0; END WHILE; return sTemp; END // delimiter // 2 --调用方式 select queryChildrenAreaInfo(1); select * from t_areainfo where FIND_IN_SET(id, queryChildrenAreaInfo(20)); /* delimiter // CREATE FUNCTION `queryChildrenAreaInfo`(rootId INT) RETURNS varchar(1000) BEGIN DECLARE sTemp VARCHAR(1000); 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(id) INTO sTempChd FROM t_areainfo where FIND_IN_SET(parentId,sTempChd)>0; END WHILE; RETURN sTemp; END // delimiter ; */
首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Mysql存储引擎及选择方法 下一篇ubuntumysql无法启动简单排查

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: