我正在写一个脚本来处理类似facebook的状态/回复的评论.基本上,项目可以有注释,用户可以回复该注释(最高一级).
我的表格设置如下:
Comments: [ Comment_ID | User_ID | Content | etc...]
Comments_Reply: [ Comment_ID | Is_Reply_To ]
Run Code Online (Sandbox Code Playgroud)
因此,如果用户回复评论#555,它会像评论一样出现在评论表中,那么在[555 |]中也会在Comments_Reply中获取一行.新评论ID ]
如何选择注释,使其按以下顺序排列:
[ 555 | ....
[ New Comment that replies to 555
[556 | ....
[557 | ....
Run Code Online (Sandbox Code Playgroud)
等等......回复后的回复显示回复.我正在使用PHP和MySql.
好吧,我想我现在得到了你想要的东西.我没有办法快速测试这个函数的MYSQL版本,但SQLite版本工作得很好,根据文档,MySQL应该工作得很好.可能是在MySQL上做更好的方法.
SQLite的:
SELECT a.*, IFNULL( b.Is_Reply_To, a.Comment_ID ) as Is_Reply_To FROM Comments a LEFT JOIN Comments_Reply b HAVING(Comment_ID) ORDER BY Is_Reply_To ASC, a.Comment_ID ASC
MySQL的
SELECT a.*, IF( IS NULL(b.Is_Reply_To), a.Comment_ID, b.Is_Reply_To ) as Is_Reply_To FROM Comments a LEFT JOIN Comments_Reply b HAVING(Comment_ID) ORDER BY Is_Reply_To ASC, a.Comment_ID ASC
这为我的SQLite产生了这些结果.
Comment_ID Is_Reply_to
1 1
10 1
11 1
2 2
12 2
3 3
13 3
14 3
4 4
5 5
6 6
7 7
8 8
9 9
15 15
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1439 次 |
| 最近记录: |