MYSQL查询使用条件获取不同的值

标签 mysql if-statement

我一直在寻找这样的东西:

  • 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/

相关文章:

php - 在 csv 文件中搜索和替换什么更快?在字符串中还是在数组中?

MySQL UPDATE 使用 IF 选择哪一列+1

python - 如何根据 Sage 中使用的比较运算符生成 "cases"或 "if, then"

python - 判断闰年

java - 如何修复多个 If-Else 条件下的 SonarLint 认知复杂性错误

mysql - 在搜索 WordPress 中禁用默认正则表达式

MySQL 查询与两个表的计算

Jquery 数据表和 Mysql 错误 : The value of the search cannot be null. 如果没有执行搜索,请提供一个空字符串。

phpMyAdmin 外键下拉字段值

r - cumsum 与 r 中标记列的重置?