MySQL 查询从数据库中删除项目,但每天保留 1 行
MySQL query for remove items from database, but keep 1 single row per day
我有一个包含多行的 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
);
子查询 returns 每天的最后一个值,因此每隔一行被删除。
见 demo.
结果:
| date | col |
| ------------------- | ---- |
| 2019-01-01 15:23:24 | 1.5 |
| 2019-01-02 11:21:25 | 1.25 |
我有一个包含多行的 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
);
子查询 returns 每天的最后一个值,因此每隔一行被删除。
见 demo.
结果:
| date | col |
| ------------------- | ---- |
| 2019-01-01 15:23:24 | 1.5 |
| 2019-01-02 11:21:25 | 1.25 |