在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;
- //
在sql语句使用该函数
- select * from t_areainfo where find_in_set(id,queryChildrenAreaInfo(1));
本文来源于:http://blog.csdn.net/yangnianbing110/article/details/36664799
相关推荐
递归查询菜单树,支持mysql,oracle,含表结构,递归查询菜单,支持mysql,oracle,含表结构递归查询菜单。
Oracle 递归查询, start with connect by prior 用法 find_in_set 函数 concat,concat_ws,group_concat 函数 MySQL 自定义函数 手动实现 MySQL 递归查询 Oracle 递归查询 在 Oracle 中是通过 start ...
MySQL递归查询,oracle在迁移成mysql后难免会遇到的问题。
在ORACLE、MSSQL、MYSQL中树结构表递归查询的实现.pdf
前言 ...Oracle递归查询 oracle实现递归查询的话,就可以使用start with … connect by connect by递归查询基本语法是: select 1 from 表格 start with … connect by prior id = pId start with
用mysql实现oracle递归,通过with as 来实现
Oracle start with.connect by prior子句实现递归查询
主要给大家介绍了关于Oracle递归查询start with connect by prior、的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
简介:mysql5.0.94版本,该版本以及较高级的版本(5.5、6等等)尚未支持循环递归查询,和sqlserver、oracle相比,mysql难于在树状表中层层遍历的子节点。本程序重点参考了下面的资料,写了两个sql存储过程,子节点...
oracle 递归 SQL 语句.
本文实例讲述了MySQL实现树状所有子节点查询的方法。分享给大家供大家参考,具体如下: 在Oracle 中我们知道有一个 Hierarchical Queries 通过CONNECT BY 我们可以方便的查了所有当前节点下的所有子节点。但很遗憾,...
上面的列名和子查询的列名以及类型要对应 全部列名模式: create table userInfo as select * from user; 直接将整个表的类型和数据备份到新表userInfo中 9、 添加表字段 添加单列 alter table user add tel ...
数据库技术:如关系型数据库(如MySQL、Oracle、SQL Server)和非关系型数据库(如MongoDB、Redis)等。 前端开发:HTML、CSS、JavaScript等用于构建网页和Web应用程序的技术。 后端开发:涉及服务器端编程、API开发...
2:数据库(Oracle或者MySQL) SQL语句 多表连接,内外连接, 子查询等 管理表、视图、索引、序列、约束等 树状结构存储 存储过程、触发器 数据库设计三范式、 3:JDBC JDBC基础 连接池 树状结构存储与展现 ...
本书特色:主要介绍SQL的语法规则及在实际开发中的应用,并且对SQL在MySQL、MS SQL Server、Oracle和DB2中的差异进行了分析;详细讲解数据库对增、删、改、查等SQL的支持并给出了相应的SQL应用案例;透彻分析函数...
11.9.3 My SQL Server和DB2中递归查询 附录A 常用数据库系统的安装和使用 A.1 DB2的安装和使用 A.2 MySQL的安装和使用 A.3 Oracle的安装和使用 A.4 Microsoft SQL Server的安装和使用 显示部分信息
11.9.3 My SQL Server和DB2中递归查询 附录A 常用数据库系统的安装和使用 A.1 DB2的安装和使用 A.2 MySQL的安装和使用 A.3 Oracle的安装和使用 A.4 Microsoft SQL Server的安装和使用 显示部分信息
11.9.3 My SQL Server和DB2中递归查询 附录A 常用数据库系统的安装和使用 A.1 DB2的安装和使用 A.2 MySQL的安装和使用 A.3 Oracle的安装和使用 A.4 Microsoft SQL Server的安装和使用 显示部分信息
11.9.3 My SQL Server和DB2中递归查询 附录A 常用数据库系统的安装和使用 A.1 DB2的安装和使用 A.2 MySQL的安装和使用 A.3 Oracle的安装和使用 A.4 Microsoft SQL Server的安装和使用 显示部分信息
反向生成: 任意连接其它数据库(mysql、oracle、sqlserver),根据表反射生成本系统的模块 10. 性能监控:监控整个系统的性能,SQL监控,SQL防火墙,URL监控,SPRING监控,SESSION监控等 11. 接口测试:POST or GET ...