mysql以及oracle的递归查询
来源:互联网 发布:亚马逊和淘宝哪个大 编辑:程序博客网 时间:2024/05/02 06:08
在oracle中实现递归查询的途径较多
方法1:通过with子句实现递归
- with temp(id,parentid) as (
- select id,parentid
- from t
- where t.id = '1'
- union all
- select t.id, t.parentid
- from temp, t
- where temp.parentid = t.id)
with子句中递归with子句达到递归查询的效果
方法2:通过oracle提供的connect by来实现
- SELECT id, parentid
- FROM t
- CONNECT BY id = PRIOR parentid
- START WITH id = '1';
prior在parentid前面表示向下递归,在id前面向上递归
mysql中递归的实现:
mysql中没有提供connect by这种语法,也没有with子句,那么怎么搞呢?我们定义一个函数实现
- delimiter //
- DROP FUNCTION IF EXISTS queryChildren;
- CREATE FUNCTION `queryChildren` (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;
- //
- select * from t_areainfo where find_in_set(id,queryChildrenAreaInfo(1));
0 0
- mysql以及oracle的递归查询
- mysql以及oracle的递归查询
- mysql以及oracle的递归查询
- MySql递归查询和Oracle递归查询
- ORACLE的递归查询
- ORACLE的递归查询
- Oracle的递归查询
- Oracle的递归查询
- 关于oracle的递归查询
- Oracle 的树形递归查询
- Oracle递归查询的原理
- 关于oracle的递归查询
- oracle 递归查询的例子
- MySql的递归树状查询
- mysql 递归查询的方法
- orcale 的递归查询以及坑
- oracle 递归查询属于本部门以及下属部门
- mysql的逆袭:如何做oracle的start with connect by prior递归层次查询
- 51单片机项目制发短信
- springMVC与jquery和ajax结合
- java篇 【4】数据类型
- ACM学习-单行道问题
- html编程tips
- mysql以及oracle的递归查询
- phalapi-入门篇4(国际化高可用和自动生成文档)
- MFC Toolbar图标尺寸调整出错解决方法
- 操作系统和网络面试总结
- [解析]Objective-C 深浅拷贝
- ACM学习-破坏行动-最大网络流
- iOS软件开发 内存管理之拷贝
- C#学习之路,学习笔记 2.1 整形、浮点型和decimal型变量
- a+1与&a+1