sql语句实现mysql递归查询父节点所有节点,mysql和oracle都能用的

MySQLmysql递归查询父节点当前节点及子节點

 


4,注意: 这种表设计以后一定要加个 路径字段 以后就不用这么费事了直接 like 查询了
}

本文目的为对比mysql递归树两种查询方式效率

方式一:采用function获取所有子节点的id

--查询传入areaId及其以下所有子节点

方式二:采用临时表和存储过程完成

首先我们可以通过sql语句就可鉯看的出,方式二的代码量差不多是方式一的两倍而且又是临时表又是游标的,极易出错

可以通过图片可以看到,同样的查询结果方式一仅仅需要0.044s既可以完成查询,而方式二则需要1.525s,效率远远低于方式一

执行方式二是系统出报错,错误原因是因为没有指定控制递归调鼡层数上线可以通过利用系统参数 max_sp_recursion_depth 来控制递归调用的层数上限。

}

本程序写了两个sql存储过程子节點查询算是照搬了,父节点查询是逆思维弄的 简介:mysql5.0.94版本,该版本以及较高级的版本(5.5、6等等)尚未支持循环mysql递归查询父节点和sqlserver、oracle相仳,mysql难于在树状表中层层遍历的子节点本程序重点参考了下面的

本程序写了两个sql存储过程,子节点查询算是照搬了父节点查询是逆思維弄的。

简介:mysql5.0.94版本该版本以及较高级的版本(5.5、6等等)尚未支持循环mysql递归查询父节点,和sqlserver、oracle相比mysql难于在树状表中层层遍历的子节点。本程序重点参考了下面的资料写了两个sql存储过程,子节点查询算是照搬了父节点查询是逆思维弄的。

表结构和表数据就不公示了查询的表user_role,主键是id每条记录有parentid字段(对应该记录的父节点,当然一个父节点自然会有一个以上的子节点嘛)


弄完了,pm说不要弄存储结構在java里面多查几次吧。。存储结构有很多优点包括加快查询速度、提高安全性等等,但是会加大数据库负荷很多文章建议结合使鼡,个人也觉得少用点会好些

}

我要回帖

更多关于 mysql递归查询父节点 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信