MySQL8.0新特性-通用表表达式(CTE)
通用表表达式与派生表类似。
CTE可以多次引用,并且可以引用其它CTE,可以递归。
CTE支持SIUD等语句。
1、非递归的CTE
通过一个简单的实例来了解一下:
1 | select * from (select 1) as cte1; |
2、递归CTE
通过一个简单的实例来了解一下:
1 | with recursive cte(n) as |
如图所示:
实例演示:
1 | -- 初始化 |
限制参数
cte_max_recursion_depth
递归深度max_execution_time
最大执行时间
1 | -- 一个死循环的sql |
简单的测试:实现斐波那契
1 | with recursive cte(n,m) as |
是不是感觉很简单,我第一次写这个的时候用了1分钟,大家呢?
推荐
MySQL8.0创建用户及其配置
MySQL8.0新特性-新的索引方式
MySQL8.0新特性-通用表表达式(CTE)
MySQL8.0新特性-窗口函数
MySQL8.0新特性-InnoDB增强
MySQL8.0新特性-JSON增强
官方介绍