排序平树

时间:2013-02-21 17:28:31

标签: php mysql tree

我有一个树结构的表,有lvl,lft和rgt列。 最初我有SELECT * FROM tree_table ORDER BY lft ASC的扁平树,以按树中的位置排序。 但现在我有sort列来对他们级别的节点进行排序。如何通过它在树中的位置对树进行排序并同时加权? 我认为使用MySQL查询是不可能的,但我怎样才能用PHP获取它?

lft

排序的表数据示例
id | lft | rgt | level | sort
1 | 1 | 628 | 1 | 0
2 | 2 | 281 | 2 | 3
3 | 3 | 128 | 3 | 0
4 | 4 | 15 | 4 | 1
5 | 16 | 27 | 4 | 5
....

如果没有sort列,我会以相同的顺序显示行,但现在我想要得到这个:

id | lft | rgt | level | sort
1 | 1 | 628 | 1 | 0
2 | 2 | 281 | 2 | 3
3 | 3 | 128 | 3 | 0
5 | 16 | 27 | 4 | 5
4 | 4 | 15 | 4 | 1
....

1 个答案:

答案 0 :(得分:0)

嗯,根据你的例子,你可以得到你想要的结果:

SELECT * FROM tree_table ORDER BY level, Sort DESC

但我可能会误解你的问题。