我有一个包含 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_id、start_date 和 end_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/