从树状结构中获取所有子节点(邻接列表模型)
2010-01-07 14:03
393 查看
CREATE OR REPLACE FUNCTION get_categories_all_children(use_parent INT4) RETURNS INT4[] AS $$
DECLARE
process_parents INT4[] := ARRAY[ use_parent ];
children INT4[] := '{}';
new_children INT4[];
BEGIN
WHILE ( array_upper( process_parents, 1 ) IS NOT NULL ) LOOP
new_children := ARRAY( SELECT id FROM categories WHERE parent_id = ANY( process_parents ) AND id <> ALL( children ) );
children := children || new_children;
process_parents := new_children;
END LOOP;
RETURN children;
END;
$$ LANGUAGE plpgsql;
DECLARE
process_parents INT4[] := ARRAY[ use_parent ];
children INT4[] := '{}';
new_children INT4[];
BEGIN
WHILE ( array_upper( process_parents, 1 ) IS NOT NULL ) LOOP
new_children := ARRAY( SELECT id FROM categories WHERE parent_id = ANY( process_parents ) AND id <> ALL( children ) );
children := children || new_children;
process_parents := new_children;
END LOOP;
RETURN children;
END;
$$ LANGUAGE plpgsql;
相关文章推荐
- sql server 树状结构表中,获取指定节点的所有父节点路径
- sql server 树状结构表中,获取指定节点的所有父节点路径
- 根据当前节点获取所有上层结构的组织(递归算法)
- 根据父级编号获取无限树结构数据表中所有子节点的数据
- 树形结构的Table中获取某一节点的所有叶子节点字符串
- Mysql中实现树状结构的所有子节点的查询
- oracle递归树形结构获取所有父节点,子节点
- 树状结构的罗列所有的节点的sql
- 通用树状节点 获取所有叶节点和支节点 sql
- IOS开发 获取手机所有安装app列表,提交appstore 请慎用
- MySQL中进行树状所有子节点的查询
- SharpSvn操作 -- 获取Commit节点列表
- java获取XML的所有节点
- 通用获取父节点/子节点/子节点下所有节点ID的存储过程
- SQL获取所有数据库名、表名、储存过程以及参数列表
- 获取手机安装的所有app列表
- 获取HDFS集群上所有节点名称信息
- 文档对象模型DOM(获取元素节点、设置节点属性)
- Qt获取所给文件夹下的所有文件夹列表
- MySQL-获取一个节点的所有子节点或父节点