为了账号安全,请及时绑定邮箱和手机立即绑定

MySQL中的分层查询

/ 猿问

MySQL中的分层查询

慕田峪7331174 2019-08-19 16:38:43

MySQL中的分层查询

我试图找到任何深度的特定领域的所有父母,祖父母等。例如,给定以下结构,如果我提供5,则返回的值应为1,2,3和4。


| a  | b  |

-----------

| 1  | 2  |

| 2  | 3  |

| 3  | 4  |

| 4  | 5  |

| 3  | 6  |

| 4  | 7  |

我该怎么做?


查看完整描述

2 回答

?
慕前端131612
SELECT  @id :=
        (
        SELECT  senderid        FROM    mytable        WHERE   receiverid = @id        ) AS personFROM    (
        SELECT  @id := 5
        ) vars
STRAIGHT_JOIN
        mytableWHERE   @id IS NOT NULL


查看完整回答
反对 回复 2019-08-19
?
忽然笑

以下答案不是MYSQL,而是使用PHP。这个答案对于那些在搜索期间最终出现在这个页面上的人来说非常有用(就像我一样)但不仅限于使用MYSQL。

如果您的数据库具有未知深度的嵌套结构,则可以使用递归循环打印出内容:

function goDownALevel($parent){
     $children = $parent->getChildren(); //underlying SQL function
     if($children != null){
          foreach($children as $child){
                //Print the child content here
                goDownALevel($child);
          }
     }}

此功能也可以用Javascript等任何其他语言重写。


查看完整回答
反对 回复 2019-08-19

添加回答

回复

举报

0/150
提交
取消
意见反馈 邀请有奖 帮助中心 APP下载
官方微信