在将新节点插入树时,如何填充闭包表的深度/长度列?
祖先和后代中的值是来自另一个表的ID,表示要在树结构中排列的页面.
关闭表:
ancestor descendant depth 1 1 0 1 2 1 1 3 1 1 4 1 2 2 0 3 3 0 4 4 0
这将正确插入祖先和后代,但我不知道如何填充深度列
插入查询:
INSERT INTO closure_tree_path (ancestor,descendant) SELECT ancestor,'{$node_id}' FROM closure_tree_path WHERE descendant = '{$parent_id}' UNION ALL SELECT '{$node_id}','{$node_id}';
最好的方法是什么?谢谢你!
将深度1添加到第一个SELECT.
原文链接:https://www.f2er.com/php/134757.htmlINSERT INTO closure_tree_path (ancestor,descendant,depth) SELECT ancestor,'{$node_id}',depth+1 FROM closure_tree_path WHERE descendant = '{$parent_id}' UNION ALL SELECT '{$node_id}',0;