使用 SQL修复树形结构表的层级路径字段

初始化为 null

# update category set tree_position = null;

假设最大层级是3层,则执行至少执行三次下面的 update,多执行也没事

UPDATE category c LEFT JOIN category p on p.id_ =c.parent_id
SET c.tree_position = if(c.parent_id = 0,null,if(p.tree_position is null ,p.id_,concat(p.tree_position,'&', p.id_))) where c.tree_position not like concat('%',p.tree_position,'&',p.id_)
 or c.tree_position is null;

Leave a Comment

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据