MySQL树形结构数据是一种用于表示层次结构的数据库模型,在这种模型中,数据以父子关系的形式组织,形成一个树状结构,这种结构通常用于表示组织结构、文件目录、产品分类等具有层次关系的数据集。
以下是一个简单的MySQL树形结构数据的示例:
1、创建表结构
CREATE TABLEtree_data
(id
int(11) NOT NULL AUTO_INCREMENT,name
varchar(255) NOT NULL,parent_id
int(11) DEFAULT NULL, PRIMARY KEY (id
), FOREIGN KEY (parent_id
) REFERENCEStree_data
(id
) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2、插入数据
INSERT INTOtree_data
(name
,parent_id
) VALUES ('根节点', NULL), ('一级节点1', 1), ('二级节点11', 2), ('二级节点12', 2), ('三级节点111', 4), ('三级节点121', 5), ('三级节点122', 5);
3、查询数据
查询所有节点:
SELECT * FROM tree_data
;
查询某个节点的子节点:
SELECT * FROMtree_data
WHEREparent_id
= [节点ID];
查询某个节点的父节点:
SELECT * FROMtree_data
WHEREid
= [节点ID];
查询树的深度:
SELECTname
,depth
FROM (SELECTname
, @depth := IF(parent_id
IS NULL, @depth + 1, @depth) ASdepth
, @pv :=parent_id
ASpv
FROMtree_data
, (SELECT @depth := 0, @pv := NULL) r) t WHEREpv
IS NULL ORpv
= [节点ID];
查询树的叶子节点:
SELECT * FROMtree_data
WHEREid
NOT IN (SELECTparent_id
FROMtree_data
);
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/636962.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复