gpt4 book ai didi

mysql - 删除同一个 mySQL 表中除最新记录外的所有记录

转载 作者:行者123 更新时间:2023-11-28 23:39:25 25 4
gpt4 key购买 nike

我有这样一个数据表

+------------+-------------+---------------+---------------------+
| date | facebook_id | FB_page_likes | asof |
+------------+-------------+---------------+---------------------+
| 2016-01-15 | person1 | 119339 | 2016-01-15 11:22:20 |
| 2016-01-15 | person1 | 119340 | 2016-01-15 11:34:00 |
| 2016-01-15 | person2 | 52147 | 2016-01-15 11:22:20 |
| 2016-01-15 | person2 | 52147 | 2016-01-15 11:34:00 |

我有一个 Python 脚本,它自动读取 FB_page_likes 值,然后在 asof 列中为其添加时间戳。有时脚本可能每天运行不止一次,但我只想保留当天的最新值。我想弄清楚如何只保留给定日期的每个 facebook_id 的最新记录。

我试过一个子查询:

delete from dailydata 
where date='2016-01-15' and asof != (select max(asof) from dailydata);

这给了我错误

ERROR 1093 (HY000): You can't specify target table 'dailydata' for update in FROM clause

然后在这里做了一些研究,发现了其他一些有这个错误的人提出的问题( MySQL Error 1093 - Can't specify target table for update in FROM clauseYou can't specify target table for update in FROM clause 。他们建议使用“as”来避免这个问题,所以我尝试了这个:

delete from dailydata 
where asof not in (
select max(asof) from (
select * from dailydata
) as temp
where date='2016-01-15' group by temp.facebook_id
);

但我仍然遇到同样的错误。有人对我缺少的东西有任何想法吗?

最佳答案

试试这个:

delete from dailydata 
where date='2016-01-15'
and asof not in (select * from (select max(asof) from dailydata) as t);

关于mysql - 删除同一个 mySQL 表中除最新记录外的所有记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34812259/

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