如何获取每个条件的最后插入行

时间:2014-08-21 13:19:51

标签: mysql timestamp max

我需要根据几个条件从数据库中选择最后插入的行。以下是数据样本。

TIMESTAMP   CHANNEL LANGUAGE    FORECAST
1   CALL    DUTCH   10
1   EMAIL   DUTCH   20
4   CALL    DUTCH   10
2   EMAIL   DUTCH   20
4   CALL    DUTCH   10
3   CALL    SPANISH 20
3   EMAIL   SPANISH 10
4   CALL    DUTCH   10

每次添加记录时都会插入一个时间戳,但是,可以有更多记录具有相同的时间戳,因为可以在同一时间戳插入大量记录。

我需要检索具有最新时间戳的所有记录。因此,在此示例中,结果应为:

TIMESTAMP   CHANNEL LANGUAGE    FORECAST
4   CALL    DUTCH   10
4   CALL    DUTCH   10
4   CALL    DUTCH   10

我尝试使用max(timestamp)语句,但也结束了'更早'的时间戳。

我认为这应该很容易吗?

1 个答案:

答案 0 :(得分:2)

你想要

SELECT * 
FROM MyTable
WHERE TIMESTAMP =
(
  SELECT MAX(m.TIMESTAMP) 
  FROM MyTable m
)

子查询中不需要ORDER BY因为它只返回一个结果。