gpt4 book ai didi

sql - 如何在MYSQL中进行评论回复查询?

转载 作者:可可西里 更新时间:2023-11-01 06:35:27 25 4
gpt4 key购买 nike

我有评论回复(只有一级)功能。所有评论都可以有和回复一样多,但没有回复可以有进一步的回复。

所以我的数据库表结构如下

Id    ParentId    Comment
1 0 this is come sample comment text
2 0 this is come sample comment text
3 0 this is come sample comment text
4 1 this is come sample comment text
5 0 this is come sample comment text
6 3 this is come sample comment text
7 1 this is come sample comment text

在上述结构中,commentid,1(有2条回复)和3(1条回复)有​​回复。因此,要获取评论及其回复,一个简单的方法是首先获取所有 ParentId 为 0 的评论,然后通过运行 while 循环获取该特定 commentId 的所有回复。但如果我对特定记录有大约 200 条评论,这似乎会运行数百个查询。

所以我想做一个查询,它将按如下顺序获取评论及其回复;

Id    ParentId    Comment
1 0 this is come sample comment text
4 1 this is come sample comment text
7 1 this is come sample comment text
2 0 this is come sample comment text
3 0 this is come sample comment text
6 3 this is come sample comment text
5 0 this is come sample comment text

如果有人想在评论查询中使用它,我的评论表中还有一个评论日期列。

所以最后我想使用一个 mysql 查询来获取所有的评论和他们的回复。请告诉我该怎么做?

谢谢

最佳答案

您可以在 ORDER BY 中使用表达式。试试这个:

SELECT *
FROM comments
ORDER BY IF(ParentId = 0, Id, ParentId), Id

如果 ParentId = 0,这将首先按 Id 排序,否则按 ParentId 排序。第二个排序标准是 Id,以确保按顺序返回回复。

关于sql - 如何在MYSQL中进行评论回复查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/937042/

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