MYSQL WITH recursive使用
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;
用法2 父求子
创建table: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;