Mysql8.0公共表达式

发布于 2023-06-07  269 次阅读


目标:什么是公共表达式,公共表达式能做什么

什么是公共表达式

MySQL 8.0 引入了公共表达式(Common Table Expressions,CTE),它是一种临时命名的结果集,可以在查询中多次引用。公共表达式提供了一种简洁和可读性强的方式来定义复杂的查询逻辑。

公共表达式使用 WITH 关键字定义,并且可以包含一个或多个命名的查询表达式。每个命名的查询表达式由一个名称和一个查询体组成。公共表达式可以在主查询中像表一样引用,并且可以嵌套使用。


示例

普通查询

 -- 公共表达式
-- 定义一张临时表cte
WITH cte AS (
  SELECT id, name, salary
  FROM employees
  WHERE salary > 5000
)
-- 查询临时表
SELECT id, name, salary
FROM cte;

递归

 -- 公共表达式
-- 定义一张临时表test
WITH RECURSIVE test as (
SELECT 1 AS n
-- 合并两个查询结果
UNION ALL
-- 1+n
SELECT 1+n FROM test WHERE n<10
)
-- 查询临时表
SELECT * FROM test;

输出结果:
1
2
3
4
5
6
7
8
9
10
届ける言葉を今は育ててる
最后更新于 2023-06-07