是这样的,分页不是用limit吗,但是!!评论的好像有点复杂..
比如我要取十条评论,这十条评论还要包括它们的回复,这个时候就不知道该limit几到几了,因为不确定某条评论有几个回复...如果按平常这样limit 0,10,就有可能其中九条是另外一条的评论,那实际就只取了一条。
所以这里应该怎么做呢?一开始我想的是先取十条顶级的评论然后在用in取出子回复,然并卵,太麻烦了。
是这样的,分页不是用limit吗,但是!!评论的好像有点复杂..
比如我要取十条评论,这十条评论还要包括它们的回复,这个时候就不知道该limit几到几了,因为不确定某条评论有几个回复...如果按平常这样limit 0,10,就有可能其中九条是另外一条的评论,那实际就只取了一条。
所以这里应该怎么做呢?一开始我想的是先取十条顶级的评论然后在用in取出子回复,然并卵,太麻烦了。
通过 in
取出回复感觉是比较好的方式,为什么会 然并卵
呢?
如果想只通过一条 SQL 语句查出来也是可以的,那就不要主语句中加 limit
,而是在嵌套的 in
查询中加 limit
,依然能达到你要的效果。
还是应该把逻辑再整理清楚些吧。评论是分层级,直接发起的评论和针对评论的评论。直接取出的10条应该是直接发起的评论。这样就在每条评论的数据上记录册层级,SQL中按层级获取。如果要是取评论的评论就再分多次获取。
评论也分好多种吧。
像SF
这种评论可以把该问题下的所有评论都获取出来。
类似于百度贴吧的这种评论,设计的表可以加上parent_id字段。
类似网易的评论,可以增加一个评论楼层引用的字段,用逗号隔开。
直接取10条顶级评论分页显示 每页的子回复ajax查询