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

select getParentList('001001001');

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

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

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

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

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

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

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

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

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

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

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

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

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

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

本节主要介绍了jQuery如何获取节点和子节点文本,下面有个示例,大家可以参考下 对于下面的html片段, ? 1

test t ...

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

zTree实现清空选中的第一个节点的子节点 1.实现源代码

zTree实现基本 ...

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

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

随机推荐

转载:一幅图弄清DFT与DTFT,DFS的关系

转载:http://www.cnblogs.com/BitArt/archive/2012/11/24/2786390.html 很多同学学习了数字信号处理之后,被里面的几个名词搞的晕头转向,比如DF ...

Gradle学习系列之三——读懂Gradle语法

在本系列的上篇文章中,我们讲到了创建Task的多种方法,在本篇文章中,我们将学习如何读懂Gradle. 请通过以下方式下载本系列文章的Github示例代码: git clone https://git ...

AppInventor学习笔记(四)&mdash;&mdash;打地鼠应用学习

一.组件设计 1.整体预览 2.图片精灵的添加 (1)首先加入一个画布进去 调节属性如图 (2)添加精灵 添加精灵,然后上传张图片进行属性修改 3.加入Clock 直接加入,设定为1000ms 二.B ...

【区间选点问题】uva 10148 - Advertisement

区间选点问题,即数轴上有n个闭区间[l1i, ri],取尽量少的点,使得每个区间内都至少有一个点. The Department of Recreation has decided that it m ...

centos安装nodejs和mongodb

安装nodejs: Run as root on RHEL, CentOS or Fedora, for Node.js v4 LTS Argon: curl --silent --location ...

在android中如何查看sqlite数据表结构,以及data文件打不开问题

1.root你的手机 2.cmd进入DOS界面,并且cd 转换目录到AndroidSDK\platform-tools中 3.输入adb shell 4.输入su,进入root权限,此时$变为#,输入 ...

不可综合的verilog语句分析

前半部分转自http://www.cnblogs.com/Mrseven/articles/2247657.html,后半部分为自己测试结果. 基础知识:verilog 不可综合语句 (1)所有综合工 ...

如何使用Maven的archetype快速生成一个新项目(解决生成项目目录不完整问题)

Maven的archetype Plugin可能大家都听过,但不一定都能很好地用好它.缺省地如果你使用 mvn archetype:generate  会从maven的Repository里查找所有支 ...

android 防止反编译的若干方法

第一种方式:混淆策略 混淆策略是每个应用必须增加的一种防护策略,同时他不仅是为了防护,也是为了减小应用安装包的大小,所以他是每个应用发版之前必须要添加的一项功能,现在混淆策略一般有两种: 对代码的混淆 ...

5随机到7随机的C++实现

一.5随机到7随机 //给定条件 int Rand1To5(){ + ; } //实现代码,使用插空法和筛的过程 int Rand1To7(){ ; do{ tmp = (Rand1To5() - ) ...

你可能感兴趣的:(mysql,递归查找父节点)