千家信息网

MySQL删除重复数据的方法

发表于:2025-11-13 作者:千家信息网编辑
千家信息网最后更新 2025年11月13日,这篇文章主要介绍MySQL删除重复数据的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!最近在做一个批量数据导入到MySQL数据库的功能,从批量导入就可以知道,这样的数据在插
千家信息网最后更新 2025年11月13日MySQL删除重复数据的方法

这篇文章主要介绍MySQL删除重复数据的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

最近在做一个批量数据导入到MySQL数据库的功能,从批量导入就可以知道,这样的数据在插入数据库之前是不会进行重复判断的,因此只有在全部数据导入进去以后在执行一条语句进行删除,保证数据唯一性。

下面话不多说了,来一起看看详细的介绍吧

表结构如下图所示:

表名:brand

操作

使用SQL语句查询重复的数据有哪些:

SELECT * from brand WHERE brandName IN(select brandName from brand GROUP BY brandName HAVING COUNT(brandName)>1 #条件是数量大于1的重复数据)

使用SQL删除多余的重复数据,并保留Id最小的一条唯一数据:

注意点:

错误SQL:DELETE FROM brand WHERE brandName IN (select brandName from brand GROUP BY brandName HAVING COUNT(brandName)>1)
AND Id NOT IN (select MIN(Id) from brand GROUP BY brandName HAVING COUNT(brandName)>1)

提示: You can't specify target table 'brand' for update in FROM clause 不能为FROM子句中的更新指定目标表"brand"

原因是:不能将直接查处来的数据当做删除数据的条件,我们应该先把查出来的数据新建一个临时表,然后再把临时表作为条件进行删除功能

正确SQL写法: DELETE FROM brand WHERE brandName IN  (SELECT brandName FROM (SELECT brandName FROM brand GROUP BY brandName HAVING COUNT(brandName)>1) e) AND Id NOT IN (SELECT Id FROM (SELECT MIN(Id) AS Id FROM brand GROUP BY brandName HAVING COUNT(brandName)>1) t)#查询显示重复的数据都是显示最前面的几条,因此不需要查询是否最小值

结果如下图:

总结:

很多东西都是需要自己一步一步的去探究的,当然网上的建议也是非常宝贵的借鉴和资源,无论做什么开发我们都需要理解它的工作原理才能够更好的掌握它。

以上是MySQL删除重复数据的方法的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

数据 条件 查询 方法 最小 内容 功能 数据库 语句 宝贵 东西 价值 兴趣 写法 原因 原理 只有 唯一性 子句 小伙 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 长深高速哪个服务器好 数据库技术特点 巅峰之战关闭服务器删档吗 金蝶客户端支持服务器系统 五笔输入法用什么软件开发 甘肃联想服务器虚拟化多少钱 服务器上更改ntp配置 软件开发项目的接口设计模式 饥荒一直显示正在搜索服务器 网络安全工作先进个人推荐意见 软件开发各阶段用什么文档 网络安全周活动工作总结 ssas数据库 个人保密承诺书网络安全 对淘宝网络安全的建议 遍历数据库查敏感数据 电脑服务器地址如何设置 山东智慧党建软件开发 网易云用户数据库 中核集团网络技术 国家规划文件 大数据库 数据库范式中p和f代表什么 锐安科技 网络安全 安全狗服如何添加服务器 数据库系统最重要的软件 宁夏兴庆区软件开发公司排名 闵行区推荐的网络技术服务价格 在线access数据库 杭州知识产权融资服务数据库 宁夏回族自治区网络安全条例
0