直接生成连续的数字
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;