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

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 回答

?
心有法竹

TA贡献1866条经验 获得超5个赞

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
?
忽然笑

TA贡献1806条经验 获得超5个赞

以下答案不是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
  • 2 回答
  • 0 关注
  • 615 浏览
慕课专栏
更多

添加回答

举报

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