我有一个包含多行的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个查询吗?
答案 0 :(得分:1)
您可以保留每天的最长日期:
delete from tablename
where date not in (
select * from (
select max(date)
from tablename
group by date(date)
) g
);
子查询返回每天的最后一个值,因此每隔一行将被删除。
请参见demo。
结果:
| date | col |
| ------------------- | ---- |
| 2019-01-01 15:23:24 | 1.5 |
| 2019-01-02 11:21:25 | 1.25 |