gpt4 book ai didi

mysql删除日期大于特定日期的行

转载 作者:太空宇宙 更新时间:2023-11-03 10:38:30 25 4
gpt4 key购买 nike

我有一张这样的 table

----------------------
| idDoc | date |
----------------------
| 1 | 2018-01-20 |
| 1 | 2018-07-15 |
| 1 | 2017-07-31 |
| 1 | 2019-01-17 |
| 1 | 2019-07-30 |
| 1 | 2020-01-11 |
| 1 | 2020-07-31 |
| 1 | 2021-01-20 |
| 15 | 2018-11-31 |
| 15 | 2019-03-17 |
| 15 | 2018-05-31 |
| 15 | 2017-05-29 |
| 15 | 2019-09-20 |
| 15 | 2020-12-31 |
| 5 | 2018-01-31 |
| 5 | 2017-07-31 |
| 5 | 2018-04-23 |
| 5 | 2019-11-31 |
| 5 | 2019-12-08 |
----------------------

我希望(通过单个查询)变成这样:

----------------------
| idDoc | date |
----------------------
| 1 | 2017-07-31 |
| 15 | 2017-05-29 |
| 5 | 2017-07-31 |
----------------------

要获取的日期将始终是较旧的日期,而要删除的字段将始终(具有相同的 ID)所有大于它的日期。

有什么建议吗?

最佳答案

如果你想删除数据库中的数据,试试这个:

delete t1
from demo t1
join demo t2
on t1.idDoc = t2.idDoc
and t1.`date` > t2.`date`;

参见 demo在这里。

如果你想选择样本数据之类的记录,试试这个:

select t1.*
from demo t1
join (select idDoc, min(`date`) minDate from demo group by idDoc) t2
on t1.idDoc = t2.idDoc
and t1.`date` = t2.`minDate`;

关于mysql删除日期大于特定日期的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42950156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com