包含mysql 递归查询父节点 和子节点

mysql递归查询,查父集合,查子集合

查子集合

--drop FUNCTION `getChildList`
CREATE FUNCTION `getChildList`(rootId varchar())
RETURNS varchar()
BEGIN
DECLARE str varchar();
DECLARE cid varchar();
SET str = '$';
SET cid = rootId;
WHILE cid is not null DO
SET str = concat(str, ',', cid);
SELECT group_concat(id) INTO cid FROM treeNodes where FIND_IN_SET(parentid, cid) > ;
END WHILE;
RETURN str;
END
  1. select getParentList('001001001');
  2. select * from sbkfwh where FIND_IN_SET(id,getChildList('001001001'))

对上面的改进:


set global log_bin_trust_function_creators = 1;

CREATE FUNCTION `getChildList`(rootId varchar(100),which_level INTEGER)
RETURNS varchar(2000)
BEGIN
DECLARE str varchar(2000); 这里可能容纳不下,可以打点。
DECLARE cid varchar(100); 这里可能太短,导致返回的str太小,可以大点。 DECLARE curr_level integer ; SET str = '';
SET cid = rootId;
set curr_level = 1; WHILE (cid is not null ) and ( curr_level <= which_level ) DO SELECT group_concat(id) INTO cid FROM users where FIND_IN_SET(parent_id, cid) > 0;
set curr_level = curr_level + 1;
SET str = concat(str, ',', cid); END WHILE;
RETURN trim( BOTH ',' FROM str );
END


上面程序运行如下:

输入1,1, 结果:4,5,14,15,16,17,18,19,1001,1002,1006,1013,1014

输入1,2 :结果:4,5,14,15,16,17,18,19,1001,1002,1006,1013,1014,7,8

包含mysql 递归查询父节点 和子节点的更多相关文章

  1. Web网页树形列表中实现选中父节点则子节点全选和不选中父则子全不选

                需要实现的功能:选中父节点对应子节点全选:不选中父节点,对应子节点也不选中 如下图所示,选中车队,对应车队中车辆也全部选中,以实现车队中所有车辆在地图上的显示. 选中cqupt ...

  2. SqlServer父节点与子节点查询及递归

    在最近老是用到这个SQL,所以记下来了: 1:创建表 CREATE TABLE [dbo].[BD_Booklet]( [ObjID] [int] IDENTITY(1,1) NOT NULL, [P ...

  3. 总结获取原生JS(javascript)的父节点、子节点、兄弟节点

    关于原生JS获取节点,一直是个头疼的问题,而且调用方法的名字又贼长了,所以我选择用JQ,好像跑题了-- 话不多说看代码 获取父节点 及 父节点下所有子节点(兄弟节点) <ul> <l ...

  4. Jquery选择器之父节点的子节点

    今天review代码,发现有哥们这么写 var span = $($("span"),$("#main")); 我百思不得其解,$(a,b)又好像在哪里见过,后 ...

  5. cocos2d-x 父节点和子节点执行不同动作

    Test6::Test6() { CCSprite* sp1 = CCSprite::create(s_pPathSister1); CCSprite* sp11 = CCSprite::create ...

  6. C#中treeview的问题,如何区分根节点和子节点以及根节点和根节点的兄弟节点?

    根节点的Level属性为0,一级子节点Level属性为1,二级子节点Level属性为2,以此类推:同级节点可以用索引.名称.文本来区分.用索引区分根节点时,TreeView.Nodes[0]就是第一个 ...

  7. jQuery获取节点和子节点文本的方法

    本节主要介绍了jQuery如何获取节点和子节点文本,下面有个示例,大家可以参考下 对于下面的html片段, ? 1 <div id="text_test">test t ...

  8. zTree实现清空选中的第一个节点的子节点

    zTree实现清空选中的第一个节点的子节点 1.实现源代码 <!DOCTYPE html> <html> <head> <title>zTree实现基本 ...

  9. JavaScript的DOM编程--04--获取元素节点的子节点

    获取元素节点的子节点(**只有元素节点才有子节点!!) 1). childNodes 属性获取全部的子节点, 但该方法不实用. 因为如果要获取指定的节点 的指定子节点的集合, 可以直接调用元素节点的 ...

随机推荐

  1. ADT下载地址(申明:来源于网络)

    ADT下载地址(含各版本),最新ADT-23.0.6(申明:来源于网络) 地址:http://write.blog.csdn.net/mdeditor

  2. J - Vertical Histogram(1.5.7)

    J - Vertical Histogram(1.5.7) Time Limit:1000MS    Memory Limit:65536KB    64bit IO Format:%I64d &am ...

  3. centos 断网

    不知道为什么.....开启服务后就是断线 查询 ip addr 故障状态 正常状态 配置中关闭网络管理 命令:chkconfig NetworkManager off 配置中开启网络管理 命令: ch ...

  4. [No0000F5]C# 类(Class)

    当你定义一个类时,你定义了一个数据类型的蓝图.这实际上并没有定义任何的数据,但它定义了类的名称意味着什么,也就是说,类的对象由什么组成及在这个对象上可执行什么操作.对象是类的实例.构成类的方法和变量成 ...

  5. 【紫书】uva133 The Dole Queue 参数偷懒技巧

    题意:约瑟夫问题,从两头双向删人.N个人逆时针1~N,从1开始逆时针每数k个人出列,同时从n开始顺时针每数m个人出列.若数到同一个人,则只有一个人出列.输出每次出列的人,用逗号可开每次的数据. 题解: ...

  6. Laravel 5.2 INSTALL- node's npm and ruby's bundler.

    https://getcomposer.org/doc/00-intro.md Introduction# Composer is a tool for dependency management i ...

  7. springmvc整合spring+mybatis出现的404或者报找不到这个类的时候。

    1.文件配置没有问题的时候看这个看看.输出目录改成这个.要有这里所有的目录才行

  8. dbgrideh添加列、多表头及属性

    (一)动态添加列 procedure TForm2.FormCreate(Sender: TObject); var   vCol : TColumn; begin   vCol := DBGrid1 ...

  9. Orchard Core 自定义权限配置

    在我们为Orchard Core配置了一个新的Module之后,我们要考虑的是谁可以访问这个Module,那么这里就涉及到了一个权限的配置.如下图,添加了自定义的权限: Orchard Core源码: ...

  10. opencv车流量统计算法

    #include "cv.h" #include <cxcore.h> #include <highgui.h> #include <cvaux.h& ...