php – MYSQL和Closure表树中的深度

前端之家收集整理的这篇文章主要介绍了php – MYSQL和Closure表树中的深度前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在将新节点插入树时,如何填充闭包表的深度/长度列?

祖先和后代中的值是来自另一个表的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.
INSERT 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;
原文链接:https://www.f2er.com/php/134757.html

猜你在找的PHP相关文章