Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте.
Смысл моей задачи в следующем. У меня есть таблица с деревом, заданным полями "ID", "ID_parent" "level". Еще в ней есть пустое поле "path", которое мне нужно заполнить по следующему алгоритму: берем поле "path" родителя и добавляем к нему ID через слеш. Так что в итоге получится:
entity_id parent_id path level
1 1 1 1
2 1 1/2 2
3 1 1/3 2
4 2 1/2/4 3
5 4 1/2/4/5 4
level уже заполнено. Я реализовал так:
UPDATE catalog_category_entity AS t1
JOIN catalog_category_entity AS t2
ON (t1.entity_id = t2.parent_id AND t2.entity_id>1)
SET t2.path = CONCAT(t1.path, "/", t2.entity_id)
Но порядок прохождения строк хаотичен и когда алгоритм доходит до потомка раньще чем до его родителя, то в path записывается только "/entity_id" потому что у родителя path еще пустой. Как воплотить?
Спасибо.
Неактивен
create temporary table t
select .., t2.path = CONCAT(t1.path, "/", t2.entity_id) as path
from catalog_category_entity AS t1
JOIN catalog_category_entity AS t2
ON (t1.entity_id = t2.parent_id AND t2.entity_id>1)
order by t1.parent_id;
UPDATE catalog_category_entity ... ;
drop temparary table t;
Неактивен
Спасибо за ответ, а что символизируют точки? А то я в MySQL еще не силен и не догадался (
Неактивен
пропущенные части запроса.
Неактивен
Смешно. А что там пропущено?
Неактивен