当前位置: 首页 > 面试题库 >

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

师建德
2023-03-14
问题内容

我有评论回复(仅到一个级别)功能。所有评论最多可以包含回复,但是没有回复可以包含其进一步的回复。

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

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,以确保按顺序返回答复。



 类似资料:
  • 当我使用Git Bash时,我遇到了这种现象,但我无法返回命令终端。如何解决这个问题?发生这种现象的原因是什么?

  • 问题内容: 我正在写一个Dockerfile。有没有办法在此文件中发表评论? Docker是否具有注释选项,该选项占用了其余行而忽略了它? 问题答案: 您可以使用#作为该行的开头来注释该行。 注意: #as 注释只能在行的 开始处 使用。

  • 如何构建查询来实现这一点?

  • 问题内容: 我尝试了soup.find(’!-‘),但似乎没有用。提前致谢。 编辑:感谢您有关如何查找所有评论的提示。我有一个后续问题。如何专门搜索评论? 例如,我有以下注释标记: 我真的只想要这些东西。“ 110518”是我要用作搜索目标的日期YYMMDD。但是,我不知道如何在特定的注释标签中找到某些内容。 问题答案: Pyparsing允许您使用内置表达式搜索HTML注释,并附加解析时回调以验

  • 问题内容: 我有一个简单的任务,我需要搜索一个以字符串字符和其后的一位数字开头的记录。我正在尝试的是 和 但是两个查询总是返回一条记录 好像我执行以下查询 它返回 这意味着我有以ALA开头的记录,其后是一个数字, 编辑 我正在使用PHP MySQL和innodb引擎来实现它。 问题答案: 我认为您可以使用REGEXP代替LIKE

  • 问题内容: 如何在jDBI中执行类似的操作? 表: foo(id int,name varchar) 与myBatis中的@SelectProvider相似。 问题答案: 这应该工作: 不要忘记用以下方法注释包含此方法的类: 注解(因为JDBI底层使用Apache StringTemplate进行此类替换)。还要注意,使用此注释,您不能在SQL查询中使用’<’字符而不进行转义(因为它是String