php - MySQL合并重复记录的方法

标签 php mysql large-data

我有一个包含 1100 万行的 post_view_counters 表。

id    post_id    start_date    end_date    views
_________________________________________________
1       55          XXXX         YYYY        90
2       55          XXXX         YYYY        1
3       55          XXXX         YYYY        1

由于某种原因(后端错误)存在重复记录,这些记录已经修复。 我需要合并具有相同 post_idstart_dateend_date 的所有行 View 更新表后结果应该是这样

id    post_id    start_date    end_date    views
_________________________________________________
1       55          XXXX         YYYY        92

最佳答案

我会采取安全的方法:

首先,创建一个新表——

CREATE TABLE post_view_counters_new LIKE post_view_counters;

然后将数据插入到新表中-(@scaisEdge的语法)

INSERT INTO post_view_counters_new 
SELECT MIN(id) id,  post_id ,   start_date ,   end_date ,   SUM( views) views
FROM post_view_counters
GROUP  BY  post_id ,   start_date ,   end_date; 

然后,比较新表和旧表的数据。满意后,将旧表重命名为“post_view_counters_old”,并将“post_view_counters_new”重命名为“post_view_counters”。因此,如果您在新表中遗漏了任何内容,您仍然可以引用旧表。

关于php - MySQL合并重复记录的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57784273/

相关文章:

php - 使用 PHP/mysql 进行简单、防弹的加密

php - 从 php 执行 AWS CLI 命令导致无法找到凭证

php - 如何使用 php 在一张 excel 中自定义 excel 数据的两张表?

PHP 插入查询不起作用并且没有给出任何错误

mysql - 当文档包含 json_string 作为 mysql 5.7 中的值时,插入 json 列时出现错误

r - 将 R 中的机器学习包应用于大型数据集

php - 如何将值从动态 html 表插入 MySQL 数据库?

mysql - SQL group by subselect

python - 在长时间运行的 Python 进程中迭代大型数据集 - 内存问题?

用于大规模分析的 Python 策略(即时或延迟)