处理树形递归的问题Mysql中,实现类似oracle的sys_connect_by_path功能。请大家帮忙,谢谢!测试数据如下:
create table AUDIT_FORM
(
  FORM_ID VARCHAR2(32) not null,
  FORM_NAME VARCHAR2(256),
  PARENT_FORM_ID VARCHAR2(32),
  TYPE_ID VARCHAR2(32),
  AD_TYPE VARCHAR2(32)
)insert into AUDIT_FORM (FORM_ID, FORM_NAME, PARENT_FORM_ID, TYPE_ID, AD_TYPE)
values ('001', '供应商表现', '000', 'form', 'score');
insert into AUDIT_FORM (FORM_ID, FORM_NAME, PARENT_FORM_ID, TYPE_ID, AD_TYPE)
values ('002', '交货准确度', '001', 'form', 'score');
insert into AUDIT_FORM (FORM_ID, FORM_NAME, PARENT_FORM_ID, TYPE_ID, AD_TYPE)
values ('003', '交货质量', '001', 'form', 'score');
insert into AUDIT_FORM (FORM_ID, FORM_NAME, PARENT_FORM_ID, TYPE_ID, AD_TYPE)
values ('004', '价钱竞争力', '001', 'form', 'score');
insert into AUDIT_FORM (FORM_ID, FORM_NAME, PARENT_FORM_ID, TYPE_ID, AD_TYPE)
values ('005', '数量准确度', '002', 'form', 'score');
insert into AUDIT_FORM (FORM_ID, FORM_NAME, PARENT_FORM_ID, TYPE_ID, AD_TYPE)
values ('006', '时间准确度', '002', 'form', 'count');
1、使用oracle sys_connect_by_path 可得出递归树的完整路径。
select sys_connect_by_path(form_id,'/') path,form_id,form_name,parent_form_id from audit_form
start with parent_form_id = '000'  
connect by parent_form_id = prior form_id;
PATH                             FORM_ID            FORM_NAME/001                             1                  供应商表现
/001/002                         2                  交货准确度
/001/002/005                     5                  数量准确度
/001/002/006                     6                  时间准确度
/001/003                         3                  交货质量
/001/004                         4                  价钱竞争力2、希望达到的效果如下:PATH                   FORM_ID         FORM_NAME1                       1              供应商表现
1.1                     2              交货准确度
1.1.1                   5              数量准确度
1.1.2                   6              时间准确度
1.2                     3              交货质量
1.3                     4              价钱竞争力即:
1) 一个树的同一父节点下的同级子节点,进行组内排序。
2) 上一步的排序结果 + 该节点的父节点的排序结果 。以此类推 ....
3) 得出完整的排序结果(类似路径)
4)MySql 如何实现这种树形递归的效果