相关疑难解决方法(0)

从MySQL中的分层数据生成基于深度的树(无CTE)

嗨很多天我一直在研究MySQL中的这个问题,但我无法弄明白.你们有什么建议吗?

基本上,我有一个类别表,其域名包括:id,name(类别名称)和parent(类别的父ID).

示例数据:

1  Fruit        0
2  Apple        1
3  pear         1
4  FujiApple    2
5  AusApple     2
6  SydneyAPPLE  5
....
Run Code Online (Sandbox Code Playgroud)

有许多级别,可能超过3个级别.我想创建一个sql查询,根据他的层次结构对数据进行分组:parent> child> grandchild>等.

它应该输出树结构,如下所示:

1 Fruit 0
 ^ 2 Apple 1
   ^ 4 FujiApple 2
   - 5 AusApple 2
     ^ 6 SydneyApple 5
 - 3 pear 1
Run Code Online (Sandbox Code Playgroud)

我可以使用单个SQL查询执行此操作吗?我尝试过并且确实有效的替代方案如下:

SELECT * FROM category WHERE parent=0
Run Code Online (Sandbox Code Playgroud)

在此之后,我再次遍历数据,并选择parent = id的行.这似乎是一个糟糕的解决方案.因为它是mySQL,所以不能使用CTE.

mysql common-table-expression hierarchical-data

27
推荐指数
2
解决办法
2万
查看次数