Mysql 如果一天内有多个数据集,如何保存最新的数据集

Mysql 如果一天内有多个数据集,如何保存最新的数据集,mysql,Mysql,我有一张表,每天随机更新不止一次。每次更新包含大约2000行。我希望每天保留最新的数据集,并删除更多的旧行。我构建了一个例子: “日期”表包含: +-------+-------+---------+---------------------+ | title | hhm | hhm_sum | updated | +-------+-------+---------+---------------------+ | 74142 | 21525 | 5874136 |

我有一张表,每天随机更新不止一次。每次更新包含大约2000行。我希望每天保留最新的数据集,并删除更多的旧行。我构建了一个例子:

“日期”表包含:

+-------+-------+---------+---------------------+
| title | hhm   | hhm_sum | updated             |
+-------+-------+---------+---------------------+
| 74142 | 21525 | 5874136 | 2020-06-15 00:00:00 |
| 74142 |  5263 |    2145 | 2020-06-22 00:00:00 |
| 74142 | 21254 |   21458 | 2020-06-22 04:00:00 |
| 74142 | 21458 |    3652 | 2020-06-22 08:00:00 |
| 74142 |  2158 |    1257 | 2020-06-20 00:00:00 |
+-------+-------+---------+---------------------+
使用:
SELECT*FROM test.date WHERE updated>date\u SUB(日期(NOW()),间隔24小时)

我得到了过去24小时的数据集:

+-------+-------+---------+---------------------+
| title | hhm   | hhm_sum | updated             |
+-------+-------+---------+---------------------+
| 74142 |  5263 |    2145 | 2020-06-22 00:00:00 |
| 74142 | 21254 |   21458 | 2020-06-22 04:00:00 |
| 74142 | 21458 |    3652 | 2020-06-22 08:00:00 |
+-------+-------+---------+---------------------+
我想在同一天删除旧的行并保留最新的行。如何获取和处理此值

也许有人能帮忙


非常感谢。

如果您想保留最新的一行,请按
updated desc
排序,然后选择第一行

select *
from test_date
order by updated desc
limit 1
如果可能有多行都更新了最新的
,请执行a以获取
max(updated)


欢迎来到堆栈溢出。请给我们看看你试过什么,以及你想保留的行和不保留的行的示例。最后,更新的
是什么类型的
?请阅读此文了解如何提问。你必须说明什么是最古老的,最古老的10个,从下午开始,一个有数据的例子会帮助你或看到
select *
from test_date
where updated = (
  select max(updated) from test_date
)