0
SELECT node . * , node.page_id, (COUNT(parent.page_id) - (sub_tree.depth +1)) AS depth
FROM pages AS node, pages AS parent, pages AS sub_parent, (
SELECT node.page_id, (
COUNT(parent.page_id) -1
) AS depth
FROM pages AS node, pages AS parent
WHERE node.lft
BETWEEN parent.lft
AND parent.rgt
AND node.page_id = '42'
AND node.page_status =1
GROUP BY node.page_id
ORDER BY node.lft
) AS sub_tree
WHERE node.lft
BETWEEN parent.lft
AND parent.rgt
AND node.lft
BETWEEN sub_parent.lft
AND sub_parent.rgt
AND sub_parent.page_id = sub_tree.page_id
AND node.page_status =1
GROUP BY node.page_id
ORDER BY node.lft
「page_menu_order」行の結果を同じ深度内で並べ替える必要があります。MySQL、PHP、MPTT:子供を体重/コスト/ menu_orderで並べ替え
したがって、子供は階層構造を保っていますが、奥行き内ではコスト/価格/またはpage_menu_orderでソートされます。