MySQL树形结构是一种数据存储方式,通过父子关系将数据组织成层级结构,便于查询和操作。
MySQL树形结构数据是一种用于表示层次结构的数据库模型,在这种模型中,数据以父子关系的形式组织,形成一个树状结构,这种结构通常用于表示组织结构、文件目录、产品分类等具有层次关系的数据集。
以下是一个简单的MySQL树形结构数据的示例:

![]()
1、创建表结构
CREATE TABLEtree_data(idint(11) NOT NULL AUTO_INCREMENT,namevarchar(255) NOT NULL,parent_idint(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_dataWHEREparent_id= [节点ID];
查询某个节点的父节点:

![]()
SELECT * FROMtree_dataWHEREid= [节点ID];
查询树的深度:
SELECTname,depthFROM (SELECTname, @depth := IF(parent_idIS NULL, @depth + 1, @depth) ASdepth, @pv :=parent_idASpvFROMtree_data, (SELECT @depth := 0, @pv := NULL) r) t WHEREpvIS NULL ORpv= [节点ID];
查询树的叶子节点:
SELECT * FROMtree_dataWHEREidNOT IN (SELECTparent_idFROMtree_data);
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。



评论(0)