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