SQL 小抄 · SQL
递归 CTE 树形查询
说明
分类父子展开。
复制后按表名、字段与引擎微调;生产请用预处理防注入。
代码
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