SQL删除重复数据应先精准识别待删行再操作,推荐用ROW_NUMBER()窗口函数标记重复行并删rn>1的记录,务必先备份、再事务执行,并按业务规则(如保留最新或有效状态)决定保留逻辑。

SQL删除重复数据,核心思路是保留一条,删掉其余重复项。关键不在于“怎么删”,而在于“怎么准确识别哪些该删、哪些该留”。盲目用 DELETE + GROUP BY 或直接删全表重插,风险极高。下面给出几种安全、可验证、生产环境可用的方案。
这是最推荐的入门方式,逻辑清晰、不易误删。利用 ROW_NUMBER() 给每组重复数据编号,只删编号 > 1 的行。
假设表 user_info 中 email 字段重复,想按 id 升序保留最早的一条:
DELETE FROM user_info WHERE id NOT IN ( SELECT MIN(id) FROM user_info GROUP BY email );
或者更直观的窗口函数写法(MySQL 8.0+ / PostgreSQL / SQL Server):
WITH dup AS (
SELECT id,
ROW_NUMBER() OVER (PARTITION BY email ORDER BY id) AS rn
FROM user_info
)
DELETE FROM user_info
WHERE id IN (SELECT id FROM dup WHERE rn > 1);✅ 优点:语义明确,支持多字段去重(如 PARTITION BY email, phone),可
先用 SELECT 预览要删的行。
任何删除操作上线前,必须做这两件事:
CREATE TABLE user_info_bak AS SELECT * FROM user_info;
BEGIN; DELETE ... ; SELECT COUNT(*) FROM user_info; -- 确认数量合理后 COMMIT;,出错立刻 ROLLBACK;
⚠️ 切勿在没备份、没事务的情况下直接跑 DELETE。线上表一旦误删,恢复成本极高。
AI发型设计
虚拟发型试穿工具和发型模拟器
247
查看详情
不是所有重复都该按 ID 最小保留。常见业务逻辑:
ORDER BY created_at DESC
ORDER BY CASE WHEN status='active' THEN 0 ELSE 1 END, created_at DESC
PARTITION BY email, phone, name
不看业务含义硬去重,可能把有效数据当重复删掉——比如同一用户换绑手机号,旧记录和新记录 email 相同但 phone 不同,本质不是重复。
千万级表直接 DELETE 可能锁表几分钟,影响业务。可分批删除:
-- MySQL 示例:每次删 5000 行,加 LIMIT 防卡死
DELETE FROM user_info
WHERE id IN (
SELECT id FROM (
SELECT id FROM user_info
WHERE email IN (
SELECT email FROM user_info
GROUP BY email H*ING COUNT(*) > 1
)
AND id NOT IN (
SELECT MIN(id) FROM user_info
GROUP BY email
)
LIMIT 5000
) t
);同时确保 email 和 id 字段有索引,否则子查询会极慢。
不复杂但容易忽略。
以上就是SQL删除重复数据怎么做_安全去重方案讲解【教学】的详细内容,更多请关注其它相关文章!
# 中文网
# 鹿泉商城网站推广
# 金华seo优化网络推广报价
# 肥西网站建设中心主任
# 外贸网站seo高手
# 襄阳网站建设网址
# 网站建设过时了吗现在
# 短视频seo提高
# seo编辑
# 汽车网站建设优化案例
# 翔安网站seo
# mysql
# 相关文章
# 多个
# 升序
# 这是
# 数据查询
# 多字
# 极高
# 怎么做
# 分区表
# ai
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
优化推广96088 】
【
技术知识133117 】
【
IDC资讯59369 】
【
网络运营7196 】
【
IT资讯61894 】
相关推荐:
德邦快递查询入口登录官网 德邦快递单号查询系统入口
《豆瓣》私信用户方法
顺丰官方查单号入口 顺丰快递单号查询官网入口
WPS文字如何进行简繁转换
cad怎么隐藏指定的图层_cad隐藏或冻结图层方法
苹果SE如何开启单手模式_苹果SE单手操作功能
《随手记》关闭首页消息推送方法
Animex动漫社正版在线入口 Animex动漫社动漫官方观看网
盲鳗善于分泌黏液猜猜主要用来做什么
《友玩*》创建群聊方法
更换小红书群背景怎么换?小红书群规则怎么设置?
《火花chat》搜索好友方法
《杖剑传说》食谱大全
动漫岛在线动漫网 动漫岛动漫在线观看官方入口
Lar*el Eloquent:高效删除多对多关系中无关联子记录的父模型
响应式设计中动态背景颜色条的实现指南
创客贴登录页面入口 创客贴网页版最新网址链接
J*aScript中高效处理用户输入:从Keyup事件到表单提交的优化实践
构建可配置的J*aScript加权点击计数器与共享总计功能
Win11怎么录屏_Windows 11自带Xbox Game Bar录制视频
苹果自助维修计划支持哪些设备机型
微信如何设置字体大小_微信字体设置的阅读舒适
SQL聚合查询、联接与筛选:GROUP BY 子句的正确使用与常见陷阱
qq邮箱怎么注册_QQ邮箱注册步骤与注意事项
抖音作品被限流怎么办 抖音内容优化与流量恢复方法
江苏大剧院会员卡购买步骤
钉钉任务无法提醒如何处理 钉钉任务提醒优化方法
第五人格PC版怎么避免被封号_第五人格PC版防封号注意事项
快手网页版官方访问 快手网页版页面在线打开
PHP使用DOMDocument与XPath精准追加XML元素教程
PHP中获取HTTP响应状态消息:方法与限制
《爱笔思画x》魔棒工具抠图教程
126手机126邮箱登录_126邮箱手机登录入口官网
怎么恢复删除的电脑文件_数据恢复软件使用教程
追剧达人如何发弹幕
优化Asyncio嵌套函数调度:使用生产者-消费者模式实现并发流处理
cad视图选项卡不见了怎么办_cad视图标签恢复显示方法
智学网app怎么登录忘记密码_智学网app忘记密码找回与重新登录操作方法
mail.qq.com登录入口 QQ邮箱网页版直达
Symfony路由参数转换器:实体存在性验证与错误处理策略
猫眼电影app如何筛选支持退改签的影院_猫眼电影退改签影院筛选方法
火柴人战争网页版在线玩
@Team是什么?揭秘团队含义
Git命令与VS Code UI操作的对应关系解析
小红书网页版在线直达 小红书网页版免费登录入口
苹果iPhone14ProMax如何新建AppleID_iPhone14ProMax新建AppleID具体流程
向日葵客户端怎么进行语音通话_向日葵客户端语音通话功能使用方法
键盘测试软件哪个好_键盘故障检测工具推荐
Excel如何设置动态下拉菜单_Excel表格下拉选项快速方法
荣耀盒子应用管理技巧
2025-12-19
运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。