祥云平台建站,公司网站虚假宣传但网站不是我做的,梅州哪里做网站,凡客生活在实际应用中#xff0c;遇到一个这样的问题#xff0c;MySQL中存储的数据为资讯类数据#xff0c;在页面展示时会出现多个平台的新闻报导相同的内容#xff0c;导致页面会出现重复数据。因为数据是每天定期更新#xff0c;所以最快捷有效的方式是在更新完数据后增加一个去…在实际应用中遇到一个这样的问题MySQL中存储的数据为资讯类数据在页面展示时会出现多个平台的新闻报导相同的内容导致页面会出现重复数据。因为数据是每天定期更新所以最快捷有效的方式是在更新完数据后增加一个去重操作。
实现逻辑如下
写一个定时删除的脚本每天定时执行通过对数据中title进行聚合去重将数据按title分组取id最小的数据进行记录然后将id不在该列表的数据删除。
代码如下
DELETE FROM worldhm_info_major_news
WHERE id NOT IN (SELECT MIN(id) min_idFROM worldhm_info_major_newsWHERE pub_date 2023-09-24 00:00:00GROUP BY title
) AND pub_date 2023-09-24 00:00:00;
运行上述代码时报错 该错误大致意思为不能依据某字段值做判断再来更新某字段的值。
解决方法
解决方法select 的结果再通过一个中间表 select 多一次就可以避免这个错误
DELETE FROM worldhm_info_major_news
WHERE id NOT IN (
select min_id from (SELECT MIN(id) min_idFROM worldhm_info_major_newsWHERE pub_date 2023-09-24 00:00:00GROUP BY title) a
) AND pub_date 2023-09-24 00:00:00;