mysql min()不在另一列上返回min值

gjmwrych  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(338)

我有两个mysql表topics和posts,引擎是innodb,有很多posts有一个topic\u id,我有这样一个简单的查询:

select post_id, MIN(post_time) AS post_time from test1_posts where topic_id=19;

我希望它返回post\u id,它有最短的post\u时间,在大多数情况下,它是这样的。
我的问题是,在什么情况下,它不会返回具有最短发布时间的post\u id?
如果您需要更多信息,请留言。

yjghlzjz

yjghlzjz1#

不能保证它会永远回来 post_id 对应最小值 post_time ,因为mysql将数据存储为无序数据集;以及 post_id 未在任何聚合函数下处理。
只有当你能百分之百确定的时候,你才有一个职位 topic_id 你应该根据 post_time 按升序排列并使用 LIMIT 1 查找与最小post时间相对应的行。检查以下各项:

SELECT post_id, post_time 
FROM test1_posts 
WHERE topic_id = 19 
ORDER BY post_time ASC 
LIMIT 1

相关问题