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

mysql 樹形遞歸

傅智翔1年前7瀏覽0評論

MySQL是一種流行的關系型數據庫管理系統,它允許使用樹形遞歸結構進行存儲和查詢。實現樹形遞歸需要以下幾個步驟:

第一步是創建一個具有自我引用的表,例如:

CREATE TABLE categories(
id INT PRIMARY KEY,
name VARCHAR(50),
parent_id INT
);

這個表包括一個ID列(作為主鍵)、一個名稱列和一個父級ID列。父級ID列包含與同一表中另一行的ID匹配的值。

接下來,使用INSERT INTO語句向表中添加數據。例如:

INSERT INTO categories VALUES(1, 'Books', NULL);
INSERT INTO categories VALUES(2, 'Fiction', 1);
INSERT INTO categories VALUES(3, 'Non-fiction', 1);
INSERT INTO categories VALUES(4, 'Science Fiction', 2);
INSERT INTO categories VALUES(5, 'Fantasy', 2);
INSERT INTO categories VALUES(6, 'Cookbooks', 3);
INSERT INTO categories VALUES(7, 'History', 3);

這些行形成一個具有樹形結構的分類系統。其中,Books是根級分類,Fiction和Non-fiction是它的子分類。Fiction包括Science Fiction和Fantasy,而Non-fiction包括Cookbooks和History。

最后,可以使用遞歸查詢從樹中檢索數據。例如,以下查詢將返回Books分類及其所有后代分類的名稱:

WITH RECURSIVE subcategories AS (
SELECT id, name, parent_id
FROM categories
WHERE name = 'Books'
UNION ALL
SELECT c.id, c.name, c.parent_id
FROM categories c
JOIN subcategories sc ON c.parent_id = sc.id
)
SELECT name FROM subcategories;

這將輸出Books、Fiction、Science Fiction、Fantasy、Non-fiction、Cookbooks和History。