MySQL 数据库删除表中重复数据
2024-10-19 07:33:59
采集数据的时候,由于先期对页面结构的分析不完善,导致采漏了一部分数据。完善代码之后重新运行 Scrapy,又采集了一些重复的数据,搜了下删除重复数据的方法。
N.B. 删除数据表的重复数据时,请先备份数据表。
方法一
# 保留主键 ID 较小的那条记录
DELETE n1 FROM names n1, names n2 WHERE n1.id > n2.id AND n1.name = n2.name # 保留主键 ID 较大的那条记录
DELETE n1 FROM names n1, names n2 WHERE n1.id < n2.id AND n1.name = n2.name
方法二
# 保留主键 ID 较大的那条记录
DELETE FROM NAMES
WHERE id NOT IN (SELECT *
FROM (SELECT MIN(n.id)
FROM NAMES n
GROUP BY n.name) x) # 保留主键 ID 较小的那条记录
DELETE FROM NAMES
WHERE id NOT IN (SELECT *
FROM (SELECT MAX(n.id)
FROM NAMES n
GROUP BY n.name) x)
P.S. 当数据表的数据量较多时,建议使用方法二,大大节省时间。
参考链接:
- Delete all Duplicate Rows except for One in MySQL? [duplicate]
- sql - Remove duplicate rows in MySQL - Stack Overflow
最新文章
- salesforce 零基础学习(六十)Wizard样式创建数据
- python中引用
- YII2 缩略图生成 第三方包修改
- 服务器RAS性能
- Gson简要使用笔记
- Siege——多线程编程最佳实例
- [转]怎么查看和修改 MySQL 的最大连接数?
- Javascript DOM(2)
- [ 10.4 ]CF每日一题系列—— 486C
- ODOO(ERP源码安装)
- Linux基本命令总结(三)
- week_one-python基础 基本语法、流程控制
- ViewPager制作APP引导页+若干动画效果
- Permission denied: user=root, access=WRITE, inode=";/";:hadoopuser:supergroup:drwxr-xr-x
- 获取txt里面的内容
- css 多行文字,超出部分隐藏,...代替
- python 集合的比较
- 锁与theadLocal的合并使用
- Redis数据库 : 基础
- 简单的Java网络爬虫(获取一个网页中的邮箱)