mysql 树形结构

MySQL树形结构是一种数据存储方式,通过父子关系将数据组织成层级结构,便于查询和操作。

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、查询数据

mysql 树形结构

查询所有节点:


SELECT * FROM tree_data;

查询某个节点的子节点:


SELECT * FROM tree_data WHERE parent_id = [节点ID];

查询某个节点的父节点:

mysql 树形结构


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.kdun.com/ask/636962.html

本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。

(0)
未希新媒体运营
上一篇 2024-05-20 17:59
下一篇 2024-05-20 18:00

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

产品购买 QQ咨询 微信咨询 SEO优化
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购 >>点击进入