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

标签 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) 语句,但最终也得到了“较早”的时间戳。

我认为这应该很容易吗?

最佳答案

你想要

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

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

关于mysql - 如何获取每个条件的最后插入行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25427424/

相关文章:

mysql - 按敏感大写字母排序

python - 从感知日期时间到时间戳的转换再返回一个小时?

sql - 如何从 SQL 表中选择其中 TIMESTAMP 是特定日期

mysql - 一列中的 SQL 最大值

php - 帮助解决可能的性能问题(在 php 分页中)

mysql - 插入 phpMyAdmin

php - 从不等于 $var 的表结果中选择?

sql - SQL 中根据结束时间与开始时间的匹配来组合顺序事件的最佳方法是什么?

javascript - 如何将数字的值增加到 10、100、1000、10,000 等的下一个倍数

MySQL获取选择行的最大值和最小值之间的差异