gpt4 book ai didi

mysql - 获取最长时间低于定义的分组帖子

转载 作者:行者123 更新时间:2023-11-29 03:05:37 25 4
gpt4 key购买 nike

我正在开发一个新闻提要,它需要能够根据评论找出帖子,虽然这本身很简单,但我不知道如何只获取最新评论较旧的“帖子”比特定时间。

为了演示,这里是我的数据的一个过于简化的版本:

+----+---------+------------+
| id | Module | Time |
+----+---------+------------+
| 1 | Forum | 1343739050 |
| 2 | Gallery | 1343739150 |
| 3 | Gallery | 1343739250 |
| 4 | Forum | 1343739350 |
+----+---------+------------+

要获取最近评论的五个模块,我只需使用

SELECT module, max(time) FROM `comments` GROUP BY module ORDER BY max(time) DESC LIMIT 0, 5

会返回

+---------+------------+
| Module | max(Time) |
+---------+------------+
| Forum | 1343739350 |
| Gallery | 1343739250 |
+---------+------------+

正是我想要的。当我只想获取最反感评论早于特定时间的模块时,问题就出现了。例如早于 1343739350(id 为 4 的评论的时间),但我只是简单地放入一个 where 子句,它仍然会返回 Forum,因为它有一个与之匹配的评论。

我胡乱猜测并尝试了一下

SELECT module, max(time) FROM `comments` GROUP BY module WHERE max(time) < 1343739350 ORDER BY max(time) DESC LIMIT 0, 5

但事实证明,这只是我的一厢情愿。

所以问题是,我该如何编写可以执行此操作的 mysql 命令?

最佳答案

在处理聚合列时,需要使用HAVING子句,而不是WHERE子句,

SELECT module, max(time) 
FROM `comments`
GROUP BY module
HAVING max(time) < 1343739350
ORDER BY max(time) DESC
LIMIT 0, 5

关于mysql - 获取最长时间低于定义的分组帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16019161/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com