MySQL中的分层查询

MySQL中的分层查询

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


| a  | b  |

-----------

| 1  | 2  |

| 2  | 3  |

| 3  | 4  |

| 4  | 5  |

| 3  | 6  |

| 4  | 7  |

我该怎么做?


慕田峪7331174
浏览 617回答 2
2回答

心有法竹

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

忽然笑

以下答案不是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等任何其他语言重写。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

MySQL