加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – MYSQL和Closure表树中的深度

发布时间:2020-12-13 18:09:19 所属栏目:PHP教程 来源:网络整理
导读:在将新节点插入树时,如何填充闭包表的深度/长度列? 祖先和后代中的值是来自另一个表的ID,表示要在树结构中排列的页面. 关闭表: ancestor descendant depth1 1 01 2 11 3 1 1 4 12 2 03 3 0 4 4 0 这将正确插入祖先和后代,但我不知道如何填充深度列 插入查
在将新节点插入树时,如何填充闭包表的深度/长度列?

祖先和后代中的值是来自另一个表的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;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读