欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql 遍歷樹狀

黃文隆2年前9瀏覽0評論

MySQL中可以使用遞歸遍歷樹狀結(jié)構(gòu),通過遞歸調(diào)用子查詢來實現(xiàn)。

-- 創(chuàng)建一個示例表格
CREATE TABLE tree (
id INT PRIMARY KEY,
parent_id INT,
name VARCHAR(255)
);
-- 插入數(shù)據(jù)
INSERT INTO tree VALUES
(1, NULL, 'root'),
(2, 1, 'child1'),
(3, 1, 'child2'),
(4, 2, 'grandchild1'),
(5, 2, 'grandchild2'),
(6, 3, 'grandchild3'),
(7, 6, 'great-grandchild1');
-- 定義遞歸函數(shù)
DELIMITER $$
CREATE FUNCTION get_tree_path(_id INT)
RETURNS VARCHAR(255)
DETERMINISTIC
BEGIN
DECLARE _parent_id INT;
DECLARE _name VARCHAR(255);
DECLARE _path VARCHAR(255);
SELECT parent_id, name INTO _parent_id, _name FROM tree WHERE id = _id;
IF _parent_id IS NULL THEN -- 如果是根節(jié)點
RETURN _name;
ELSE -- 如果不是根節(jié)點
SET _path = CONCAT(get_tree_path(_parent_id), ' >', _name);
RETURN _path;
END IF;
END $$
DELIMITER ;
-- 查詢樹狀結(jié)構(gòu)
SELECT id, get_tree_path(id) AS path FROM tree;

以上代碼中,通過定義遞歸函數(shù)get_tree_path(),可以查詢出每個節(jié)點的完整路徑。通過調(diào)用子查詢,可以遞歸查詢出整個樹狀結(jié)構(gòu)。