背景说明
需求:MySQL树形结构, 根据指定的节点,获取其所有父节点序列。
问题分析
1、可以使用类似Java这种面向对象的语言,对节点集合进行逻辑处理,获取父节点。
2、直接自定义MySQL函数 getParentNodeList,通过一层while循环,实现对指定节点的所有父子节点进行查询。
功能实现
1、创建数据表
1)表结构截图如下(此处简单建一张表t_tree,id主键自增,uuid表示本节点,parent_uuid表示父节点):
2)建表语句如下:
/*
Navicat Premium Data Transfer
Source Server : localhost
Source Server Type : MySQL
Source Server Version : 50724
Source Host : localhost:3306
Source Schema : test_db
Target Server Type : MySQL
Target Server Version : 50724
File Encoding : 65001
Date: 07/05/2019 21:04:57
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for t_tree
-- ----------------------------
DROP TABLE IF EXISTS `t_tree`;
CREATE TABLE `t_tree` (
`id` int(20) NOT NULL AUTO_INCREMENT,
`uuid` int(20) NULL DEFAULT NULL,
`parent_uuid` int(20) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 15 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW