gpt4 book ai didi

php - MySQL统计一张表中最大的引用路径

转载 作者:行者123 更新时间:2023-11-29 21:56:00 26 4
gpt4 key购买 nike

我有下表记录了哪些用户将哪些用户推荐到该网站(例如简化的):

| id    |            user_id |    friend_id |
|-------|--------------------|--------------|
| 1 | 1 | 2 |
| 2 | 2 | 3 |
| 3 | 3 | 4 |
| 4 | 10 | 15 |

如何进行递归查询来计算出最长的推荐路径?

因此,在上述实例中,用户 1 的推荐轨迹为 3,因为他们推荐的人推荐了某人,然后他们推荐的人又推荐了其他人。 .

这很容易变得非常复杂,但我只想非常不规则地运行它。

将其作为 php 函数来实现可能会更好,但我很难理解它?

最佳答案

所以,基本上你想要遍历 TreeMap 并确定其中哪一个最长。使用存储父 ID 和子 ID 的数据结构,您可以使用 mysql 内的存储过程中的循环来完成此操作。

你也可以从 php 做同样的事情,但是,这会增加每个循环中 php 和数据库之间的通信开销,所以我相信,存储过程实现更好。

This site很好地概述了如何在 mysql 中实现和遍历图。

您必须修改其中的 ListReached() 过程以返回行数而不是列表。您甚至可以将该过程更改为返回数字的函数。我还会更改创建表部分来创建临时表。

然后使用 max() 确定最长的路径。

按照评论中的约定,仅为那些未引用的用户 ID 调用此函数。

关于php - MySQL统计一张表中最大的引用路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33144733/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com