Обновить предков во вложенном наборе? - PullRequest
0 голосов
/ 28 мая 2010

Я использую вложенные множества для представления дерева в MySQL, например:

Tree
ID
title
lft
rgt

Учитывая идентификатор узла в дереве, какой самый простой / лучший способ ОБНОВИТЬ этот узел, а также всех его предков?

Например, допустим, что идентификатор узла (36) имеет 4 уровня в глубине дерева. Я хотел бы обновить его заголовок, а также заголовок каждого родительского узла, вплоть до корня, до слова «рыба». (Всего должно быть четыре обновления.)

Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 28 мая 2010

Я нашел ответ на этот вопрос, поэтому выкладываю его здесь на случай, если кто-то еще столкнется с подобной проблемой.

Учитывая идентификатор произвольно глубокого узла, это обновит узел и всех предков узла.

        UPDATE 

            Tree AS node,
            Tree AS parent

        SET parent.title = 'fish'

        WHERE 

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