我一直在寻找这样的东西:
- forum_reply(id、文本、数据、帖子、用户)
- forum_post(ID、标题、文本、部分、数据、用户)
Post、User 和 Section 是外键。
我会显示我所在部分的所有帖子(我将使用 WHERE Section = '".$_GET['section']."' ,我正在使用 PHP),顺序根据数据,但是:
- 如果该帖子尚未得到回复,请使用该帖子的数据对该帖子进行排序
- 如果该帖子的回复数超过 0 条,则使用最后回复的数据对该帖子进行排序
我的最终结果将是一个表,其中所有帖子行均按我首先指定的数据排序。像这样:
- 发布 1 | 0 条回复 |帖子数据:19/12/2014 13:00 -> 获取帖子数据
- 发布 2 |回复 > 0, 最后回复数据: 19/12/2014 14:00 |帖子数据:19/12/2014 13:15 -> 获取上次回复的数据
- ecc..
之后,显示所有内容,例如:
- 帖子 2(2014 年 12 月 19 日 14:00)
- 帖子 1(2014 年 12 月 19 日 13:00)
我真的做不到;真的需要你的帮助!非常感谢。
最佳答案
如果没有回复,您可以使用 ifnull
函数来使用帖子日期。
select *
from forum_post
where Section=@Section
order by ifnull((
select max(Data)
from forum_reply
where Post=forum_post.id
),Data) desc
关于MYSQL查询使用条件获取不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27566072/