代码之家  ›  专栏  ›  技术社区  ›  YugoAmaryl

mysql min()未返回另一列的min值

  •  0
  • YugoAmaryl  · 技术社区  · 6 年前

    我有两个mysql表主题和帖子,引擎是innodb,有很多帖子只有一个主题,我有一个简单的查询,如下:

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

    我希望它返回具有最短发布时间的发布ID,在大多数情况下,它会返回。

    我的问题是,在什么情况下,它不会返回具有最短发布时间的发布ID?

    如果您需要更多信息,请留言。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Madhur Bhaiya    6 年前

    不能保证它会一直回来 post_id 对应最小值 post_time ,因为MySQL将数据存储为无序数据集;并且 臀后的 未在任何聚合函数下处理。

    只有一次你能百分之百确定你只有一个帖子给给定的 topic_id

    您应该根据 后时间 按升序使用 LIMIT 1 找到与最短开机自检时间相对应的行。检查以下内容:

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