网站首页 > 文章中心 > 其它

mysql怎么递归

作者:小编 更新时间:2023-10-04 14:23:43 浏览量:488人看过

mysql有递归函数吗

mysql是可以使用递归函数的,如下例子:

mysql树查询,sql递归函数

CREATE FUNCTION +getGoodsChildLst+(rootId INT)

RETURNS varchar(1000)

BEGIN

DECLARE sTemp VARCHAR(1000);

mysql怎么递归-图1

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(cateID) INTO sTempChd FROM goodscategory where FIND_IN_SET(parentCateID,sTempChd)0;

END WHILE;

RETURN sTemp;

END

mysql怎么实现递归查询数据

mysql create table treeNodes

- (

- id int primary key,

- pid int

- );

mysql select * from treenodes;

+----+----------+------+

| id | nodename | pid |

| 1 | A | 0 |

mysql如何递归汇总?

单表自身关联查询,关联条件就是父节点pcode和code相等,查询字段包含pcode和sorce,将查询结果作为新表按pcode分组,用group by,查询字段是count记录数,这样就获取pcode的节点值,这是整体思路

Mysql8.0递归函数

一般比较普遍的就是四种方法:(具体见 SQL Anti-patterns这本书)

因为不支持递归查询,所以Mysql官方当时推荐的是第三种方式:Nested Sets.我是用过的,非常难受.现在支持递归查询,我们可以使用第一种.

其实我还用了一种,一列维持顺序,一列维持层级,有空可以把实现写出来看看.

英文好的朋友请移步到这里: Managing Hierarchical Data in MySQL Using the Adjacency List Model ,不好的同学跟我一起来.

直接语句说明:

好,就这些吧.我是姜友华,下次见.

mysql中的递归调用

首先创建一个熟悉的机构表

插入几条测试数据:

union all上面的是初始化语句,只会执行一次,查到了 开发部 这一行记录.

此时此刻呢下面的join会用初始化的语句去原来的organization表去join获取所有 开发部的子部门 ,然后再用这些 子部门 去join更下面的部门.

执行的结果如下:

如下想查询开发部的所有上级部门的话上面的递归查询语句简单改一下就可以了:

执行结果如下:

Recursive Common Table Expression 'temp' can contain neither

aggregation nor window functions in recursive query block

mysql

mysql对递归的深度是有限制的,默认的递归深度是1000.

可以通过 show variables like 'cte_max_recursion_depth'; 进行查看

也可以通过select语句最大执行时间对递归加以显示, show variables lile 'max_execution_time';

以上就是土嘎嘎小编为大家整理的mysql怎么递归相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章