mysql - 使用 mysql 查询返回所有子类别

标签 mysql sql

我有一个名为'category'的mysql表,如下图所示。它有一个parent_id字段指的是父类别id,我们可以为每个类别添加n个子类别。有多个类别,例如' A-1'

enter image description here

我需要编写一个查询来从给定类别 ID 的表中返回类别及其所有子类别。因此,它将需要选择其所有子类别以及该子类别的子类别,直到获取其所有类别 child 的。为此我编写了以下查询。

select @pv:=id as category_id, name, parent_id from category
join (select @pv:=1)tmp where parent_id=@pv

它只返回 3 行,如下所示

enter image description here

但是在这里我们可以看到此列表中的所有类别都是 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/

相关文章:

php 从数据库中选择不显示正确的结果

python - Pandas DENSE RANK

mysql - 选择mysql返回的所有值的平均值

mysql - 使用 MySql 的 VB 登录网站

php - 如何根据php中的下拉选择动态获取文本字段中的内容

mysql - 我在 phpmyadmin 中的输入参数的 MYSQL 存储过程中遇到错误?

mysql - 为mysql中的每个派生表设置别名

mysql - 计数树表中子项的数量

java - MySql相关子查询的实现

mysql - 如何将 mysql 或 mongodb 集成到 grails 3.2.10