现有这么一堆数据:
01000000,哲学专业;01010000,哲学类;01010100,哲学;01010200,逻辑学;01010300,伦理学;01010400,宗教学;01015100,应用美学;01015200,宗教事务管理;01019900,哲学类其他专业;01020000,马克思主义理论类;01020100,马克思主义基础;01020200,国际共户主义运动;01020300,中国共产党党史;01020400,中国革命史;01020500,中国社会主义建设;01020600,科学社会主义;01029900,马克思主义理论类其他专业; ...怎么在树上标示出来?谢谢
01000000,哲学专业;01010000,哲学类;01010100,哲学;01010200,逻辑学;01010300,伦理学;01010400,宗教学;01015100,应用美学;01015200,宗教事务管理;01019900,哲学类其他专业;01020000,马克思主义理论类;01020100,马克思主义基础;01020200,国际共户主义运动;01020300,中国共产党党史;01020400,中国革命史;01020500,中国社会主义建设;01020600,科学社会主义;01029900,马克思主义理论类其他专业; ...怎么在树上标示出来?谢谢
id,名称(如哲学专业),编号(如0100000),pID(上一级ID)
如果数据量不是特别多的话,可以用递归的方式读取
01010000-哲学类
01010100-哲学
01010200-逻辑学
01010300-伦理学
01010400-宗教学
01015100-应用美学
01015200-宗教事务管理
01019900-哲学类其他专业
01020000-马克思主义理论类
01020100-马克思主义基础
01020200-国际共户主义运动
01020300-中国共产党党史
01020400-中国革命史
...算法是可以用递归,但实际应用效率太低,又耗资源,
数据多的情况下可采用:
一次生成一层,展开某节点时再次生成其下级节点
取第一层:
select 编号,类别 from table where 编号 like '__000000'
第二层
select 编号,类别 from table where 编号 like '____0000'
...
数据不多,就按照以上编号排序,然后两位两位编码规则,算出其父子关系。
可以通过对字符串的解析来进行节点的分类。