暂无图片
如何创建 MySQL 分层递归查询?
我来答
分享
Liuxu
2021-09-14
如何创建 MySQL 分层递归查询?

表格:

id	name	parent_id
19	category1	0
20	category2	19
21	category3	20
22	category4	21

现在,我想要一个单一的 MySQL 查询,我只需提供 id [例如说 id=19] 然后我应该得到它的所有子 ID [即 结果应该有 ID ‘20,21,22’]…

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
薛晓刚

这个供参考。虽然是oracle的。但是mysql和oracle的一样。
https://mp.weixin.qq.com/s?__biz=Mzk0NDIxNDg5Mg==&mid=2247483754&idx=1&sn=9148bb5aee487e2649ba53cf2d1fc482&chksm=c3294769f45ece7f73b79c13ddf56eab50a5d90aae8a1c04aed7c051126be5113651ebb5e937&token=1561305497&lang=zh_CN#rd

暂无图片 评论
暂无图片 有用 0
chengang

8.0有了公用表达式,递归就简单了好多好多。
比如你上面这个假设表为T
WITH RECURSIVE CTE AS
(
SELECT * FROM T WHERE ID = 19
UNION ALL
SELECT T.* FROM T
INNER JOIN CTE ON t.parid = cte.id
)

8.0以前版本就要麻烦点

以下是我写 基于两个版本实现递归
https://www.jianshu.com/p/f056a9c322fb

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏