MYSQL 8.0 新特性-遞歸CTE

直接生成連續的數字

WITH recursive a (x) AS 
( SELECT 1 
UNION ALL
SELECT x + 1 FROM a WHERE x < 10 ) 
SELECT * FROM a;

在這裏插入圖片描述

層級查詢

測試數據示例

圖形展示如下
在這裏插入圖片描述
數據庫數據如下

id name parent_id
1 a
2 b 1
3 c 1
4 d 2
5 e 3
6 f 3
WITH RECURSIVE a(id,name,parent_id,path) AS 
(
SELECT 
	id,name,parent_id,name as path 
FROM 
	test1
--
UNION ALL
SELECT 
	a.id,a.name,b.parent_id,concat(b.name,"->",path) as path 
FROM 
	a,test1 b 
WHERE 
	a.parent_id is not null 
	and 
	a.parent_id=b.id
) 
SELECT id,name,path FROM a where parent_id is null;

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章