1-sql中的递归语句
# 新建表格
CREATE TABLE aaa
(
id INT,
pid INT,
name NVARCHAR(10)
)
#插入数据
INSERT INTO aaa VALUES(1,0,'a')
INSERT INTO aaa VALUES(2,0,'b')
INSERT INTO aaa VALUES(3,1,'c')
INSERT INTO aaa VALUES(4,1,'d')
INSERT INTO aaa VALUES(5,2,'e')
INSERT INTO aaa VALUES(6,3,'f')
INSERT INTO aaa VALUES(7,3,'g')
INSERT INTO aaa VALUES(9,8,'h')
INSERT INTO aaa VALUES(10,8,'h')
INSERT INTO aaa VALUES(11,8,'h')
# 确定数据是否插入
select * from aaa
# 递归
with RECURSIVE t as
(
select *, 1 as dep from aaa where id = 1
union all
select a2.*,t.dep + 1 as dep from aaa a2 join t on a2.pid = t.id
) select * from t
- 注意:sql中的递归语句 只有在mysql8的环境下才能运行,在mysql5.7下会报错