建立一张临时表
和原表一致的表结构
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