这是树形结构的表格。
id parent_id
1 0
2 1
3 8
4 8
5 1
6 8
7 6
8 1
9 2
10 6
我需要通过“广度优先”检索数据。
所以顺序应该是:1→(8→5→2)→(6→4→3)→9→(10→7)
实际上还有另一列用于对相同深度的节点进行排序。8,5,2
,6,4,3
,10,7
。
我将其排除以简化此案例。所以相同深度节点的序列:8,5,2
,5,8,2
2,5,8
......没问题。
答案 0 :(得分:1)
广度优先搜索顺序只是ORDER BY depth_column_that_you_thought_is_irrelevant ASC
,如果您不关心图层中的节点顺序(在大多数BFS使用中您可能不需要)。如果您确实关心让同一父母的人聚在一起,那么ORDER BY depth, parent_id
。你没有给姐妹节点任何明确的优先权,所以无法帮助你。
此外,您的图表与您的数据不符,或者我无法弄清楚id: 3, parent_id: 2
行如何转换为图表中的3 < - 8或9 < - 2。