MySQL 5.x 和缺少的WITH子句
MySQL 版本 5.x 不支持 WITH
子句,这是用于定义公共表表达式 (CTE) 的标准 SQL-99 功能。 CTE 是在单个查询中使用的临时命名结果集。
这一遗漏与其他主要数据库系统(如 Oracle、SQL Server、PostgreSQL 和 Firebird)形成鲜明对比,所有这些系统都包含 CTE 支持。 对此功能的请求至少从 2006 年就已存在,但在 MySQL 5.x 中仍未实现。
MySQL 5.x 的解决方法
如果没有 WITH
子句,MySQL 5.x 用户必须使用替代方法来复制 CTE 行为:
MySQL 8.0 的承诺
MySQL 8.0 预计将引入 CTE 支持,包括递归 CTE。这一重大增强将提高 MySQL 对 SQL-99 标准的遵守程度,并释放这一宝贵功能的优势。
在 MySQL 8.0 广泛使用之前,上面列出的解决方法仍然是管理通常使用 CTE 的查询的实用解决方案。
以上是为什么 MySQL (5.x) 不支持公用表表达式(WITH 子句)?的详细内容。更多信息请关注PHP中文网其他相关文章!