tree結構表
create table `model_struc` (
`id` varchar(36) not null comment 'id',
`name` varchar(50) default null comment '名稱',
`morder` varchar(255) default null comment '排序',
`pid` varchar(36) default null comment '父選單id',
`iconid` varchar(32) default null comment '圖示id',
`create_by` varchar(32) default null comment '建立人id',
`create_name` varchar(32) default null comment '建立人',
`update_by` varchar(32) default null comment '修改人id',
`update_date` datetime default null comment '修改時間',
`create_date` datetime default null comment '建立時間',
`update_name` varchar(32) default null comment '修改人',
`icode` varchar(32) default null comment '模型**',
`version` varchar(32) default null comment '版本',
primary key (`id`)
) engine=innodb default charset=utf8 comment='模型結構';
查詢函式:
這個函式只需要改一下表明,還有pid的名字成你的即可復用
create definer=`fkgl`@`%` function `getchildlst`(rootid varchar(36)) returns varchar(1000) charset utf8
begin
declare stemp varchar(1000);
declare stempchd varchar(1000);
set stemp='$';
set stempchd=cast(rootid as char);
while stempchd is not null do
set stemp=concat(stemp,',',stempchd);
select group_concat(id) into stempchd
from
model_struc
where
find_in_set(pid, stempchd) > 0;
endwhile;
return stemp;
end
我的樹,pos模型是根節點,他的id是1dffsdad
使用方法:
getchildlst(『你的id』)裡傳入的是根節點id,也可以是父節點id,如果是根節點就查出根下面所有的子節點,父節點的id就查出該父節點下面的所有子節點
select * from model_struc where find_in_set(id, getchildlst('1dffsdad'))
查出來的結果是:
MySQL遞迴查詢所有子節點,樹形結構查詢
delimiter drop procedure if exists findlchild iid 遞迴父節點 layer 允許遞迴深度 create procedure findlchild iid bigint 20 layer bigint 20 begin 建立接受查詢的臨時表 create...
統計所有可能的二叉樹結構的種數
問題 給定乙個整數 如果n 1,代表空樹結構,否則代表中序遍歷的結果為 請返回可能的二叉樹結構有多少。基本思路 假設num n 代表 個節點的搜尋二叉樹有多少種可能。假設序列 1 i n 如果以 作為頭結點,的左子樹有i 1個節點,所以可能的結構有num i 1 種,右子樹有n i個節點,所以有nu...
根據XML檔案父節點的屬性值取得所有子節點
1 xml version 1.0 2 root 3 nodes name 操作型別 4 node value 1 增加 node 5 node value 2 刪除 node 6 node value 3 修改 node 7 node value 4 啟用 node 8 node value 5 ...