网站权重是怎么提升的,加强品牌建设应重点从哪些方面着手,wordpress视频采集插件,网站开发与制作工资背景开发过程中遇到类似评论的功能是#xff0c;需要时用查询所有评论的子集。不同数据库中实现方式也不同#xff0c;本文使用Mysql数据库#xff0c;版本为8.0Oracle数据库中可使用START [Param] CONNECT BY PRIORMysql 中需要使用 WITH RECURSIVE需求找到name为张三的孩子…背景开发过程中遇到类似评论的功能是需要时用查询所有评论的子集。不同数据库中实现方式也不同本文使用Mysql数据库版本为8.0Oracle数据库中可使用START [Param] CONNECT BY PRIORMysql 中需要使用 WITH RECURSIVE需求找到name为张三的孩子和孙子pid为当前记录的父id,如张三儿子的pid为张三的id,以此类推。引入计算1到100的累加的结果。WITH RECURSIVE t(n) AS ( //t为我们结果表n为字段可以只指定表明不指定字段VALUES (1) //递归的开始此时可理解为t表字段n只有一条记录 1UNION ALLSELECT n1 FROM t WHERE n 100/*这里产生的结果为 2 此时t表的字段n有两条记录分别为12* 3* ...* 100*/)SELECT sum(n) FROM t; //对字段n求和父求子WITH RECURSIVE temp AS ( // 将结果表命名为tempSELECT * FROM resource r WHERE r.name 张三 //查询出父id这条记录此时这条记录已存在temp表中 如图1-1UNION ALL/*这时要注意下面这条sql是获取的期望结果中的后两条记录(不包含第一条)*注意where后的条件我们使用temp表中的唯一一条记录的id关联resource表中的pid*仅当temp第一条记录匹配不到resource表中的pid时才会对temp的第二条记录id进行匹配*/SELECT r.* FROM resource r,temp t WHERE t.id r.pid)select * from temp子查父WITH recursive temp AS (SELECT * FROM resource r WHERE r.name 张三孙子UNION ALL//已知的是子集所以我们需要通过temp的pid匹配resource的idSELECT r.* FROM resource r,temp t WHERE t.pid r.id)select * from temp到此这篇关于MySql8 递归查询父子集的方法的文章就介绍到这了,更多相关MySql8 递归查询父子集内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家