mysql递归查询

1.创建函数

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 organizing where FIND_IN_SET(parentId,sTempChd)>0;
END WHILE;
return sTemp;
END

2.调用方法SELECT id FROM organizing WHERE FIND_IN_SET(id, queryChild(2))

时间: 2024-11-05 00:26:36

mysql递归查询的相关文章

Mysql递归查询,无限级上下级菜单

mysql递归查询,mysql中从子类ID查询所有父类(做无限分类经常用到) 由于mysql 不支持类似 oracle with ...connect的 递归查询语法 之前一直以为类似的查询要么用存储过程要么只能用程序写递归查询. 现在发现原来一条sql语句也是可以搞定的 先来看数据表的结构如下: id  name    parent_id ---------------------------  1   Home        0  2   About       1  3   Contact

mysql 递归查询sql语句的实现

SELECT t.ITEM_NAME, t.ITEM_CID, t.ITEM_PID FROM `tlk_案由表单` t WHERE NOT EXISTS( select * from `tlk_案由表单` t1,`tlk_案由表单` t2 where t1.ITEM_CID=t2.ITEM_PID AND t.ITEM_CID=t1.ITEM_CID ) 注意到ITEM_CID和ITEM_PID的位置是有很重要的影响的哟,具体情况执行下sql就明白了! MySql递归查询,mysql中从子类I

小猿圈之MySql递归查询

不管学习什么语言,python.java.php等等如果你以后的方向是web,那么你都离不开数据库,mysql数据库又是开源的,所以是最受欢迎的数据库,也是企业用的最多的数据库,小猿圈老师详解mysql的递归查询,不懂的同学可以看过来了. 一.递归语句 -- 向下递归函数 SELECT GROUP_CONCAT('''', pk_dept , '''') FROM rzzxdb.bi_dept WHERE FIND_IN_SET(fr_pk_dept,'1070')>0; 设置某个部门下的所有子

递归的实际业务场景之MySQL 递归查询

喜欢就点个赞呗! 源码<--请点击此处查看 引入 当我看到一些评论时,例如下面的样子.我挺好奇这个功能是怎么样做出来的.进过查阅资料,发现这其实是 MySQL 的递归操作.下面就让我操作一下怎么实现 MySQL 的递归查询. 设计数据库 观察这种数据库设计,你会发现他都有一个父节点,一直到根节点,所以我们设计数据库的时候,应该设置一个 parentid 字段.所以,我们可以得到以下的数据库. sql 脚本如下 CREATE TABLE digui( id INT(11) NOT null aut

mysql 递归查询

1.创建表: DROP TABLE IF EXISTS `t_areainfo`; CREATE TABLE `t_areainfo` ( `id` int(11) NOT '0' AUTO_INCREMENT, `level` int(11) DEFAULT '0', `name` varchar(255) DEFAULT '0', `parentId` int(11) DEFAULT '0', `status` int(11) DEFAULT '0', PRIMARY KEY (`id`)

MySQL递归查询所有子节点,树形结构查询

--表结构 CREATE TABLE `address` ( `id` int(11) NOT NULL AUTO_INCREMENT, `code_value` varchar(32) DEFAULT NULL COMMENT '区域编码', `name` varchar(128) DEFAULT NULL COMMENT '区域名称', `remark` varchar(128) DEFAULT NULL COMMENT '说明', `pid` varchar(32) DEFAULT NUL

mysql递归查询树形表

DROP TABLE IF EXISTS `t_areainfo`; CREATE TABLE `t_areainfo` ( `id` int(11) NOT NULL AUTO_INCREMENT, `level` int(11) DEFAULT 0, `name` varchar(255), `parentId` int(11), `status` int(11) DEFAULT 0, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=65

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

查父集合 --drop FUNCTION `getParentList` CREATE FUNCTION `getParentList`(rootId varchar(100)) RETURNS varchar(1000) BEGIN DECLARE fid varchar(100) default ''; DECLARE str varchar(1000) default rootId; WHILE rootId is not null do SET fid =(SELECT parentid

单纯MYSQL递归查询上下级关系

查询 id = 6 的所有父级 SELECT ID.level, DATA.* FROM( SELECT @id as _id, ( SELECT @id := parent_id FROM table1 WHERE id = @id ) as _pid, @l := @l+1 as level FROM table1, (SELECT @id := 6, @l := 0 ) b WHERE @id > 0 ) ID, table1 DATA WHERE ID._id = DATA.id ORD