更新嵌套集中的祖先?

时间:2010-05-27 23:50:37

标签: mysql nested-sets sql-update

我使用嵌套集来表示mysql中的树,如下所示:

Tree
ID
title
lft
rgt

给定树中节点的ID,更新该节点以及所有它的祖先的最简单/最好的方法是什么?

例如,假设节点ID(36)在树中的深度为4级。我想更新它的标题,以及每个父节点的标题,一直到根,到“fish”这个词。 (总共应该有四个更新。)

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我找到了答案,所以我在这里张贴以防其他人遇到类似的问题。

给定任意深度节点的ID,这将更新节点和节点的所有祖先。

        UPDATE 

            Tree AS node,
            Tree AS parent

        SET parent.title = 'fish'

        WHERE 

            node.lft BETWEEN parent.lft AND parent.rgt
            AND node.ID = '$ID';