多层级组织树,怎么根据多个id,查询所有父级

zb19513864 发布于 06/22 16:24
阅读 504
收藏 0

开源之夏第三届火热来袭,高校学生参与赢万元奖金!>>>

多层级组织树,根据多个id,查询所有父级

加载中
1
Xiao乐
Xiao乐
表可以这样设计

create tabel t_ttt{

id bigint(20)

code varchat(128) comment '以每位10或16进制,每4位或多位为一层,做CODE'

parent_code varchat(128) default '0000'

}

select * from t_ttt from `code` like (select left(t.code,4) from t_ttt as t where t.id = #{id})
0
sprouting
sprouting

看你的表怎么设计了,比如第一种,不知道你用过行政区划代码没有,440000表示广东省,440100好像是广州,440101 就是广州市下的白云(随便举个例子,不一定是真实的行政区划),那这种有规律的代码你应该已经会查询了

还有一种,表中设计了一个pids的列,这个列存储了它所有的上级ID,这种查询也很简单

如果表设计没做任何这种冗余,那就只能遍历查询了,建议直接查询出全部,用stream来处理

0
ducat7
ducat7

如果有“path”,直接字符串查询。

否则,各数据仓库或查询框架,都有查询树的函数提供。

再不然,代码实现,查成带“path”的树,过滤筛选。

0
魔力猫
魔力猫

关系数据库树形结构常规就3种方案。如何查询核心是看数据库本身支持。

0
S
SHA-256
如果是不常变更的数据,也可以加个字段维护节点的父级,特殊字符分割,查询的时候查出来然后切割去重,就是维护这个字段的时候要保证一致
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部
返回顶部
顶部