2010-05-27 2 views
0

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

Tree 
ID 
title 
lft 
rgt 

Учитывая идентификатор узла в дереве, что это самый простой/лучший способ обновить этот узел, а также все его предков?

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

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

+0

Какое из ваших полей, lft или rgt указывает на родителя? – lexu

+0

- путь к корню (число узлов), известный до операции, или переменный и неизвестный? – lexu

ответ

0

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

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

 UPDATE 

      Tree AS node, 
      Tree AS parent 

     SET parent.title = 'fish' 

     WHERE 

      node.lft BETWEEN parent.lft AND parent.rgt 
      AND node.ID = '$ID'; 
Смежные вопросы