上一篇
mysql 树形结构
- 行业动态
- 2024-05-20
- 2753
MySQL树形结构是一种数据存储方式,通过父子关系将数据组织成层级结构,便于查询和操作。
MySQL树形结构数据是一种用于表示层次结构的数据库模型,在这种模型中,数据以父子关系的形式组织,形成一个树状结构,这种结构通常用于表示组织结构、文件目录、产品分类等具有层次关系的数据集。
以下是一个简单的MySQL树形结构数据的示例:
1、创建表结构
CREATE TABLE tree_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) REFERENCES tree_data (id) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2、插入数据
INSERT INTO tree_data (name, parent_id) VALUES ('根节点', NULL), ('一级节点1', 1), ('二级节点11', 2), ('二级节点12', 2), ('三级节点111', 4), ('三级节点121', 5), ('三级节点122', 5);
3、查询数据
查询所有节点:
SELECT * FROM tree_data;
查询某个节点的子节点:
SELECT * FROM tree_data WHERE parent_id = [节点ID];
查询某个节点的父节点:
SELECT * FROM tree_data WHERE id = [节点ID];
查询树的深度:
SELECT name, depth FROM (SELECT name, @depth := IF(parent_id IS NULL, @depth + 1, @depth) AS depth, @pv := parent_id AS pv FROM tree_data, (SELECT @depth := 0, @pv := NULL) r) t WHERE pv IS NULL OR pv = [节点ID];
查询树的叶子节点:
SELECT * FROM tree_data WHERE id NOT IN (SELECT parent_id FROM tree_data);
本站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本站,有问题联系侵删!
本文链接:https://www.xixizhuji.com/fuzhu/197259.html