mysql 树形结构查询
程序员文章站
2024-03-19 19:26:58
...
Mysql树形结构函数查询
一 简介
对于具有上下级关系的业务场景或分销等场景,mysql数据库表结构满足 id , pid模式,可以使用mysql自定义函数快速实现根据id查询所有子类节点,或根据id查询所有父类节点.
二 简单demo
创建nodelist表
create table `nodelist` (
`id` int (11),
`nodecontent` varchar (300),
`pid` int (11)
);
insert into `nodelist` (`id`, `nodecontent`, `pid`) values('1','a',NULL);
insert into `nodelist` (`id`, `nodecontent`, `pid`) values('2','b','1');
insert into `nodelist` (`id`, `nodecontent`, `pid`) values('3','c','1');
insert into `nodelist` (`id`, `nodecontent`, `pid`) values('4','d','2');
insert into `nodelist` (`id`, `nodecontent`, `pid`) values('5','e','3');
insert into `nodelist` (`id`, `nodecontent`, `pid`) values('6','f','3');
insert into `nodelist` (`id`, `nodecontent`, `pid`) values('7','g','5');
insert into `nodelist` (`id`, `nodecontent`, `pid`) values('8','h','7');
insert into `nodelist` (`id`, `nodecontent`, `pid`) values('9','i','8');
insert into `nodelist` (`id`, `nodecontent`, `pid`) values('10','j','8');
三 自定义函数
根据id查询所有子节点数据 定义函数 getChild
根据id查询所有父节点数据 定义函数 getParent
四 sql用法
查询id是5的所有子节点数据
SELECT * FROM nodelist WHERE FIND_IN_SET(id, getChild(5));
查询id是10的所有父节点数据
SELECT * FROM nodelist WHERE FIND_IN_SET(id, getParent(10));
上一篇: winform chart画折线,波形图,多条数据
下一篇: 如何优雅的解决斐波那契数列
推荐阅读
-
MYSQL根据id递归向下查询所有子级
-
mysql 树形结构查询
-
Java中使用递归算法实现查找树形结构中所有父级和子级节点
-
MySQL的慢查询与常见的查找方法(顺序查找,二分查找)
-
《SpringDataJpa系列教程》07-查询——多对多(基于springboot2.0.3+MySQL5.7)
-
《SpringDataJpa系列教程》03-查询——自定义简单SQL(基于springboot2.0.3+MySQL5.7)
-
Mybatis一对一、一对多、多对多查询。+MYSQL
-
Mybatis+mysql动态分页查询数据案例——工具类(MybatisUtil.java) 博客分类: mybatismysql mybatismysql配置
-
【Mysql面试宝典】快速上手Mysql查询(上)
-
java easyui 树型结构 查询 封装 博客分类: jQuery easyuijava javaeasyui树型结构查询封装