直接生成連續的數字
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;