mysql去除重复数据

建立一张临时表

和原表一致的表结构

1
create table test_clear like test_dump;

自定义表结构,content_id标识原表中重复的字段

1
2
3
4
5
6
CREATE TABLE `test_clear` (
`content_id` varchar(64) DEFAULT NULL,
`maxId` bigint(20) DEFAULT NULL,
UNIQUE KEY `uk_maxId` (`maxId`),
KEY `nk_contentId` (`content_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;

去重并插入临时表

1
insert into test_clear SELECT content_id,max(id) as maxId FROM test_dump GROUP BY content_id;

删除原表数据

1
DELETE FROM test_dump WHERE id not IN (SELECT maxId FROM test_clear)

其他方式

https://juejin.cn/post/6844903582114775053

文章作者: C.c
文章链接: https://liquidcat.cc/mysql去除重复数据.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Me