mysql8.0CTE实现递归查询
+----+----------+--------------+
| ID | ParentID | name |
+----+----------+--------------+
| 1 | 0 | 河南省 |
| 2 | 1 | 信阳市 |
| 3 | 2 | 淮滨县 |
| 4 | 3 | 芦集乡 |
| 5 | 1 | 安阳市 |
| 6 | 5 | 滑县 |
| 7 | 6 | 老庙乡 |
| 8 | 2 | 固始县 |
| 9 | 8 | 李店乡 |
| 10 | 2 | 息县 |
| 11 | 10 | 关店乡 |
| 12 | 3 | 邓湾乡 |
| 13 | 3 | 台头乡 |
| 14 | 3 | 谷堆乡 |
| 15 | 1 | 南阳市 |
| 16 | 15 | 方城县 |
| 17 | 1 | 驻马店市 |
| 18 | 17 | 正阳县 |
+----+----------+--------------+
由下而上
sql:
with recursive r as
(
select * from c where id =11
union all
select c.* from c,r where c.id=r.ParentID
) select * from r order by id;
result:
+------+----------+-----------+
| ID | ParentID | name |
+------+----------+-----------+
| 1 | 0 | 河南省 |
| 2 | 1 | 信阳市 |
| 10 | 2 | 息县 |
| 11 | 10 | 关店乡 |
+------+----------+-----------+
由上而下
sql:
with recursive r as
(
select id,name from c where id=1
union all
select c.id,CONCAT(r.name, '>', c.name) as name from c,r where r.id = c.ParentID
)select id,name from r;
result:
+------+-----------------------------------------+
| id | name |
+------+-----------------------------------------+
| 1 | 河南省 |
| 2 | 河南省>信阳市 |
| 5 | 河南省>安阳市 |
| 15 | 河南省>南阳市 |
| 17 | 河南省>驻马店市 |
| 3 | 河南省>信阳市>淮滨县 |
| 6 | 河南省>安阳市>滑县 |
| 8 | 河南省>信阳市>固始县 |
| 10 | 河南省>信阳市>息县 |
| 16 | 河南省>南阳市>方城县 |
| 18 | 河南省>驻马店市>正阳县 |
| 4 | 河南省>信阳市>淮滨县>芦集乡 |
| 7 | 河南省>安阳市>滑县>老庙乡 |
| 9 | 河南省>信阳市>固始县>李店乡 |
| 11 | 河南省>信阳市>息县>关店乡 |
| 12 | 河南省>信阳市>淮滨县>邓湾乡 |
| 13 | 河南省>信阳市>淮滨县>台头乡 |
| 14 | 河南省>信阳市>淮滨县>谷堆乡 |
+------+-----------------------------------------+
mysql8.0CTE实现递归查询的更多相关文章
- MySQL递归查询
MySQL8.0已经支持CTE递归查询,举例说明 CREATE TABLE EMP (EMPNO integer NOT NULL, ENAME ), JOB ), MGR integer, HIRE ...
- Mysql8.0新特性【详细版本】
1. 账户与安全 用户创建与授权 之前:创建用户并授权 1 grant all privileges on *.* to 'myuser'@'%' identified by '3edc#EDC'; ...
- MSSQLServer中组织或分类表的设计及其递归查询
开篇:项目中用到上下级从属关系的太多太多了,如:组织.分类.行政区域,这里不再一一介绍,遇到这种的如何去进行数据库表的设计及其应用的,个人对往期项目中所涉及到的进行了一些总结. 数据库表设计:表字段一 ...
- CTE 递归查询
使用CTE进行递归查询,能够实现对层次结构的数据的快速访问,非常有用. TSql CTE 递归原理探究 TSql 分层和递归查询 1,CTE的递归结构 递归查询的结构包括两部分:起始点和迭代公式. 使 ...
- 【转载】Oracle递归查询:使用prior实现树操作【本文出自叶德华博客】
本文标题:Oracle递归查询:使用prior实现树操作 本文链接:http://yedward.net/?id=41 本文版权归作者所有,欢迎转载,转载请以文字链接的形式注明文章出处. Oracle ...
- 【2016-11-7】【坚持学习】【Day22】【Oracle 递归查询】
直接在oracle 递归查询语句 select * from groups start with id=:DeptId connect by prior superiorid =id 往下找 sele ...
- c3p0数据源的使用初步及Mysql8小时问题解决
原文:http://blog.csdn.net/xby1993/article/details/23707775 c3p0号称是java界最好的数据池. c3p0的配置方式分为三种,分别是 1.set ...
- mysql 递归查询
1.创建表: DROP TABLE IF EXISTS `t_areainfo`; CREATE TABLE `t_areainfo` ( `id` ) ' AUTO_INCREMENT, `) ', ...
- Start with connect by prior 递归查询
在SELECT命令中使用CONNECT BY和START WITH子句可以查询表中的树型结构关系.其命令格式如下: SELECT * from CONNECT BY {PRIOR列名1=列名2|列名1 ...
随机推荐
- 紧急通知:Onion勒索病毒正在大范围传播!已有大量学生中招!(转)
在5月12日晚上20点左右,全国各地的高校学生纷纷反映,自己的电脑遭到病毒的攻击,文档被加密,壁纸遭到篡改,并且在桌面上出现窗口,强制学生支付等价300美元的比特币到攻击者账户上.我们的一位成员和其多 ...
- MYSQL增加tmp_table_size 的操作
最近有张表经常损坏,修复后还是会出现损坏. dba分析有可能是临时表空间太小导致的.以下是设置临时表空间大小的操作. 设置 tmp_table_size的大小 mysql> set global ...
- C#怎么调用百度地图Web API
直接上代码: public ActionResult FindMileage() { string s; HttpWebRequest req = (HttpWebRequest)HttpWebReq ...
- 如何下载网易云音乐APP里的MV和短视频?
本人:网易云音乐死粉,朋友圈大多都用的是云音乐,因为推荐功能牛逼 然后:发现云音乐APP里越来越多吸引我的短视频,经常看到好的就想保存到相册,然后微信发给朋友 但是:不知道怎么下载网易云音乐的短视频, ...
- mybatis中Parameter index out of range (1 > number of parameters, which is 0).
Parameter index out of range (1 > number of parameters, which is 0).(参数索引超出范围) 在mybatis里面写就是应该是 l ...
- String类型的方法总结
String :字符串对象的包装类型 var stringObject = new String("wanglehui"); 方法总结: 1.返回该对象表示的基本字符串值(也就是返 ...
- SNMP收集
http://velep.com/archives/416.html 协议基本格式
- android ListView使用
1.DbOpenHelper package dbOpenHelper; import android.content.Context; import android.database.sqlite. ...
- HttpWebRequest post 提交 C#的WebBrowser操作frame如此简单 WebClient 提交
//http://www.cnblogs.com/cgli/archive/2011/04/09/2010497.html System.Net.ServicePointManager.Expect1 ...
- POJ1287 Networking【最小生成树】
题意: 给出n个节点,再有m条边,这m条边代表从a节点到b节点电缆的长度,现在要你将所有节点都连起来,并且使长度最小 思路: 这是个标准的最小生成树的问题,用prim的时候需要注意的是他有重边,取边最 ...