首页 > 解决方案 > 如何保持表格的最新记录

问题描述

我有一个具有以下结构的表

日期 火车
时间1 火车1
时间2 火车2
时间3 火车1
时间4 火车2

我想创建一个新表并只保留每列不同火车的最新记录

日期 火车
时间3 火车1
时间4 火车2

我应该如何做到这一点?

标签: mysqlsql

解决方案


一种选择最近行的方法是:

select t.*
from releng_retry_test_phases t
where t.date = (select max(t2.date) from releng_retry_test_phases t2 where t2.train = t.train);

如果您确实想修改表并删除较旧的行;

delete t
    from releng_retry_test_phases t join
         (select t2.train, max(date) as max_date
          from releng_retry_test_phases t2
          group by t2.train
         ) t2
         using (train)
    where t.date < t2.max_date;

推荐阅读