gpt4 book ai didi

php - MySQL树结构的实现

转载 作者:行者123 更新时间:2023-11-30 23:34:51 25 4
gpt4 key购买 nike

我希望解决方案如下表所示:

---------------------
emp lft rgt
---------------------
Albert 1 12
Bert 2 3
Chuck 4 11
Donna 5 6
Eddie 7 8
Fred 9 10
--------------------

我已手动插入以上示例值。但是我动态地需要它

如果我要在此表中再插入一个条目,它可以放在表的顶部、中间或末尾。比如我插入Ragu向Fred汇报,那么经过这个过程,我需要的结果如下:

---------------------
emp lft rgt
---------------------
Albert 1 14
Bert 2 3
Chuck 4 13
Donna 5 6
Eddie 7 8
Fred 9 12
Ragu 10 11
--------------------

我需要使用存储过程动态地重组数字。

最佳答案

假设你想插入 "Earl"6 , 9

从范围 > 6 的任何人的左值。

UPDATE YOURTAB SET Lft = Lft + 1 where lft > 6;

然后为值大于+6的任何人更新相应的“Rgt”。

UPDATE YOURTAB SET Rgt = Rgt + 1 where Rgt > 6;

在正确的位置插入新行。

INSERT INTO YOURTAB VALUES "Earl",6, 9

一种更简单、更具可扩展性的方法是将初始值作为倍数插入100,那么您可以轻松地在现有范围之间插入新值。如果您插入了连续范围的 6 个新条目 (150,125,112,106,103,101),这仍然需要您重新组织。

或者甚至更好地使用 float 作为范围值,那么您将永远不需要重新组织,因为它们始终是现有条目之间的数字。 即总是一个值 (Lft of row after - Lft of row before)/2

关于php - MySQL树结构的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8321546/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com