对于数据库中的树形结构数据,我们经常会有一种需求,给定一个父节点,查询这个父节点下所有的子节点,或者给定一个子节点,查询这个子节点上的所有父节点。
接下来,我将介绍如何在MySql中使用函数来实现递归。
1.创建表
DROP TABLE IF EXISTS `address`;
CREATE TABLE `address` (
`id` bigint(20) AUTO_INCREMENT COMMENT '主键',
`address_name` varchar(500) DEFAULT NULL,
`parent_id` bigint(20) DEFAULT 0 COMMENT '父节点',
`level_path` varchar(2000) DEFAULT NULL COMMENT '地址路径',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2.初始化数据
INSERT INTO `address` (address_name,parent_id,level_path) VALUES ('中国',0, '中国');
INSERT INTO `address` (address_name,parent_id,level_path) VALUES ('河南省',3 , '中国/河南省');
INSERT INTO `address` (address_name,parent_id,level_path) VALUES