gpt4 book ai didi

php - 如何通过查询mysql中的自引用表来获得递归结果?

转载 作者:行者123 更新时间:2023-11-29 05:38:04 24 4
gpt4 key购买 nike

我有一个自引用表“comments”,其中 comments.replyToId REFERENCES comments.ID。

我的问题是,如何使用自引用表查询数据库以获得正确排序的结果,以便我可以在 PHP 中将结果表示为树?

我试过了

select * from comments as comments_1 
left join comments as comments_2
on comments_1.id = comments_2.replyToId

我正在尝试在 php 中使用它的结果

最佳答案

您不会直接从 MySQL 中获得递归结果。最近有一个类似的讨论 - 某些 RDBMS 使用存储过程等可能是可能的,但使用现成的 SQL 则不行(参见 How can I get ancestor ids for arbitrary recursion depth in one SQL query?)。

我在类似情况下的做法是:获取所有没有 parent 的评论。然后,对于每个评论,获取其子项(如果您存储每个评论的“深度”,您可能会通过一个 SQL 查询获得所有这些子项和下一层的所有子项)。将 child 存储在树结构中的适当位置,重复。

如果您需要更底层的,您通常需要共享一些代码,解释您的数据结构,到目前为止您尝试了什么等等,这只是一般方法。

关于php - 如何通过查询mysql中的自引用表来获得递归结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9056878/

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