>我有一个包含多行的 mysql 数据库。每天晚上我都会删除除每天 1 行以外的所有行。
例如:
2019-01-01 15:23:24 | 1.5
2019-01-01 13:22:24 | 1.73
2019-01-01 12:26:24 | 1.6
2019-01-02 11:21:25 | 1.25
将是:
2019-01-01 15:23:24 | 1.5
2019-01-02 11:21:25 | 1.25
我可以用 1 个查询来做到这一点吗?
您可以保留每天的最长日期:
delete from tablename
where date not in (
select * from (
select max(date)
from tablename
group by date(date)
) g
);
子查询返回每天的最后一个值,因此每隔一行将被删除。 请参阅演示。
结果:
| date | col |
| ------------------- | ---- |
| 2019-01-01 15:23:24 | 1.5 |
| 2019-01-02 11:21:25 | 1.25 |