日期:2014-05-17  浏览次数:20838 次

一个分页问题 请大虾们看看
有这样一张评论表
id rootid userid comment
1 1 1000 sdd
2 1 1001 aaa
3 1 1002 cc
4 4 1001 scc
5 4 1002 sss
6 4 1003 uuu
我现在要做分页显示 
 1 sdd 评论1
  2 aaa 回复评论1
  3 cc 回复评论1
   
 4 scc 评论2
  5 sss 回复评论2
  6 uuu 回复评论2

如上图 不管1 。4评论有多少条回复 
都显示在同一页 每一页有10条这样的记录
各位有什么好的解决方法吗? 谢谢了

------解决方案--------------------
第一你这个表中不知道哪一条是评论,哪些是回复
假如知道了评论
在页面上显示的是所有的评论,并显示回复链接,点击便展开所有的回复,再点击收起来,用ajax实现
------解决方案--------------------
select * 
from (
select row_.*,
rownum start_rownum_
from (
select rootid
from tb_comment A
group by rootid) row_
WHERE rownum <= 10 ) page_, tb_comment B
WHERE
start_rownum_ >= 1 
and page_.rootid = B.rootid

你可以试试这个,里面的子查询用作分页查找10条rootid的数据,再关联一次主表查出全部数据,rownum是oracle的关键字,你如果是其他的数据库的话,相应修改分页查询
------解决方案--------------------
建议你插入数据的时候格式变下。
如果是评论,那么rootid=0或者直接为null.如果是回复的话再插入相应的rootid
这样的话查询的时候肯定好查多了。
直接插rootid=0,或者为null的。进行分页不就可以了。
------解决方案--------------------
不太懂啊!