递归选择Mysql

时间:2018-03-08 17:05:06

标签: mysql recursion hierarchical-data

我有一个包含示例数据的表:

+----+---------+
| id | rede_id |
+----+---------+
|  1 |       0 |
|  2 |      38 |
|  3 |       1 |
| 38 |       1 |
| 40 |       1 |
| 41 |      38 |
| 42 |      38 |
| 43 |      40 |

rede_id表示某人所属的身份。它是一个网络系统。

例如,如果我需要检查id=1的网络,结果必须如下:

+----+---------+
| id | rede_id |
+----+---------+
|  3 |       1 |
| 38 |       1 |
| 40 |       1 |
| 41 |      38 |
| 42 |      38 |
| 40 |       1 |

如果有人的rede_id是' 41'或者' 42'需要在结果上。走向无限。 我可以使用我的rede_id N id,N rede_id,其中id属于我而且无限......我需要得到所有结果。

我不知道该怎么做......真的不,我想到。

1 个答案:

答案 0 :(得分:1)

MySQL 8.0现在支持递归查询,在此处记录:https://dev.mysql.com/doc/refman/8.0/en/with.html#common-table-expressions-recursive

在MySQL 8.0之前,找不到这种类型的数据是不容易的。

还有其他存储数据的方法,以便于查询。

另见: