当前位置:  开发笔记 > 后端 > 正文

是否可以在单个查询中查询MySQL中的树结构表到任何深度?

如何解决《是否可以在单个查询中查询MySQL中的树结构表到任何深度?》经验,为你挑选了2个好方法。

我认为答案是否定的,但是我很喜欢它,任何人都可以深入了解如何在SQL(MySQL)中将树结构爬行到任何深度,但只需一个查询

更具体地说,给定树结构表(id,data,data,parent_id)和表中的一行,是否可以获得所有后代(子/孙/等),或者就此而言所有祖先(父/祖父母)/etc)使用单个查询而不知道它将向下或向上移动多远?

或者正在使用某种递归需求,我不断深入查询,直到没有新的结果?

具体来说,我正在使用Ruby和Rails,但我猜这不是很相关.



1> Dave Cheney..:

是的,这是可能的,它被称为修改的预订树遍历,如这里最好的描述

Joe Celko的树和SQL中的层次结构用于聪明人

这里提供了一个工作示例(在PHP中)

http://www.sitepoint.com/article/hierarchical-data-database/2/


(那太可怕了.)

2> Aaron Jensen..:

这里有几个资源:

http://forums.mysql.com/read.php?10,32818,32818#msg-32818

在MySQL中管理分层数据

http://lists.mysql.com/mysql/201896

基本上,您需要在存储过程或查询中执行某种游标或构建邻接表.我会避免在db之外的递归:取决于你的树有多深,这可能会变得非常缓慢/粗略.

推荐阅读
凹凸曼00威威_694
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有