我有一个名为'category'的mysql表,如下图所示。它有一个parent_id字段指的是父类别id,我们可以为每个类别添加n个子类别。有多个类别,例如' A-1'
我需要编写一个查询来从给定类别 ID 的表中返回类别及其所有子类别。因此,它将需要选择其所有子类别以及该子类别的子类别,直到获取其所有类别 child 的。为此我编写了以下查询。
select @pv:=id as category_id, name, parent_id from category
join (select @pv:=1)tmp where parent_id=@pv
它只返回 3 行,如下所示
但是在这里我们可以看到此列表中的所有类别都是 A-1 的子类别。但它没有返回所有类别。我该如何解决这个问题?
最佳答案
看起来所有 child 的 id 都比 parent 大。考虑到这一点,您可以按如下方式更改您的查询吗?
select @pv:=id as category_id, name, parent_id from category
where parent_id >@pv
关于mysql - 使用 mysql 查询返回所有子类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47200064/