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
忽然笑
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等任何其他语言重写。
添加回答
举报
0/150
提交
取消