SQL 小抄 · SQL

递归 CTE 树形查询

251代码小抄 · 可复制代码片段

说明

分类父子展开。

复制后按表名、字段与引擎微调;生产请用预处理防注入。

代码

sql
WITH RECURSIVE cat_tree AS (
  SELECT id, name, parent_id, 1 AS lvl
  FROM categories WHERE parent_id IS NULL
  UNION ALL
  SELECT c.id, c.name, c.parent_id, t.lvl + 1
  FROM categories c
  INNER JOIN cat_tree t ON c.parent_id = t.id
)
SELECT * FROM cat_tree ORDER BY lvl, id;

注意点

  • 注意深度防止死循环

常见问题

这段代码可以直接用于生产吗?

可作为起点,请按项目规范、安全与兼容性评审后再上线。

和在线工具如何配合?

生成类需求可用 tool.251w.com;需要整站定制可联系 web.251w.com。

相关工具与服务

需要在线生成?tool.251w.com

需要定制开发:web.251w.com