Mysql删除重复数据通用SQL

在日常开发过程中,可能会出现一些 bug,导致 Mysql 数据库数据重复,需要删除重复数据,这里记录下删除重复数据的通用 SQL ,方便以后需要时查阅

1、写法一

sql 复制代码
DELETE t1
FROM
	tbl_name t1
INNER JOIN tbl_name t2
WHERE
	t1.id < t2.id
AND t1.column_1 = t2.column_1
AND t1.column_2 = t2.column_2;

2、写法二

sql 复制代码
DELETE
FROM
	tbl_name
WHERE
	EXISTS (
		SELECT
			*
		FROM
			(
				SELECT
					max(id) AS id,
					column_1,
					column_2
				FROM
					tbl_name
				GROUP BY
					column_1,
					column_2
				HAVING
					count(1) > 1
			) t
		WHERE
			tbl_name.column_1 = t.column_1
		AND tbl_name.column_2 = t.column_2
		AND tbl_name.id < t.id
	)

重复数据中,保留 id 最大的,其余都删除,SQL 中 tbl_name 表示需要删除重复数据的表名,column_1column_2 是用来分组确认重复数据的字段。

相关推荐
煎蛋学姐4 分钟前
SSM旅游资讯信息服务系统的实现04s3n(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·旅游·ssm 框架·旅游资讯系统·会员管理
3***31216 分钟前
初识MySQL · 库的操作
数据库·mysql
合作小小程序员小小店6 分钟前
网页开发,在线%新版本旅游管理%系统,基于eclipse,html,css,jquery,servlet,jsp,mysql数据库
java·数据库·eclipse·html·intellij-idea·旅游·jsp
anod7 分钟前
奇怪的mysql时区问题
数据库·mysql·eclipse
鲸说MySQL17 分钟前
MySQL表文件损坏
数据库·mysql
a***592622 分钟前
【SQL技术】不同数据库引擎 SQL 优化方案剖析
数据库·sql
喂自己代言23 分钟前
常见的关系型数据库有哪些?如何安装和使用Postgres?(中英双语版)
sql·postgresql·database
0***v77730 分钟前
使用Dify访问数据库(mysql)
数据库·mysql
愚戏师42 分钟前
MySQL 数据导出
数据库·笔记·mysql
倔强的石头_1 小时前
openGauss向量数据库:引领AI时代数据智能新纪元
数据库