有张数据库如下:
id | pid | name |
---|---|---|
1 | 0 | a |
2 | 1 | b |
3 | 2 | c |
4 | 2 | d |
5 | 1 | e |
6 | 2 | f |
7 | 5 | g |
8 | 5 | h |
... | ... | ... |
pid:代表父ID
把这个数据获取到,如何通过代码实现树状结果(json格式)返回给前端。
{
"id": 1,
"name": "a",
"children": [
{
"id": 2,
"name: "b",
"children": [
{
"id": 3,
"name": "c",
"children": [ ... ] // 有儿子就有该列表,没有就没有改字段
},
{...},
{...},
]
},
{
"id": 5,
"name": "e",
"children": [
{
"id": 7,
"name": "g"
},
{
"id": 8,
"name": "h"
}
]
},
]
}
向下的儿子数不限制,最顶部只有一个节点。
mysql从8.0才开始支持的CTE,很容易实现递归。如果你不是这个版本,那么基本靠SQL写不出来,改存储过程吧。
存储过程参考: https://blog.csdn.net/moyanxu...
CTE参考:
see: https://www.yiibai.com/mysql/...