0

私は、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
....
4

1 に答える 1

0

さて、あなたの例を考えると、あなたはあなたの望む結果を得ることができます:

SELECT * FROM tree_table ORDER BY level, Sort DESC

しかし、私はあなたの質問を少し誤解しているかもしれません。

于 2013-02-21T19:27:43.327 に答える