MYSQL WITH recursive使用

由于在项目中有使用到recursive,因此在此做记录

语法

WITH recursive 表名 AS ( 
	初始语句(非递归部分) 
	UNION ALL 
	递归部分语句
)
[ SELECT| INSERT | UPDATE | DELETE]

用法1:输出1~n或者求 1~n的和

WITH recursive t AS(
    SELECT 1 AS n
    UNION ALL
    SELECT n+1 FROM t WHERE n<10
)
SELECT * FROM t
SELECT SUM(n) FROM t;

输出1~n求1~n的和

用法2 父求子

创建table:user

user表内容

求张三后代
WITH recursive temp AS(
    SELECT * FROM USER WHERE NAME='张三'
    UNION ALL
    SELECT u.* FROM USER u,temp t WHERE u.pid=t.id
)
SELECT * FROM temp;

在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐