MySQL数据库删除重复数据只保留一条方法实例
有时候在 MySQL 数据库中会出现重复的数据,这时候如果想要进行数据的清理,只保留一条重复的数据,可以参考以下方法。
方法一:使用 DELETE 和子查询方法
DELETE FROM 表名 WHERE id NOT IN
(SELECT MIN(id) FROM 表名 GROUP BY 字段名);
表名
:要进行删除重复数据的表名;id
:表中主键字段名,保证每条数据的唯一性;字段名
:重复字段名。
例如,我们有一张叫 users
的表,包含 id
、name
、email
和 phone
等字段,现在要删除 name
字段重复的数据,只保留一条。
DELETE FROM users WHERE id NOT IN
(SELECT MIN(id) FROM users GROUP BY name);
以上 SQL 语句的意思是,从 users
表中删除 id
不在以 name
字段分组后取最小值的结果集中的记录。
方法二:使用临时表方法
CREATE TABLE 临时表名 AS SELECT DISTINCT * FROM 表名;
-- 确认无误后再执行下面语句
DROP TABLE 表名;
RENAME TABLE 临时表名 TO 表名;
以上 SQL 语句的意思是,先创建一张临时表 临时表名
,利用 SELECT DISTINCT
取出无重复记录,并将其复制到临时表中。确认无误后,先删除原来的表 表名
,再将临时表 临时表名
重命名为原来的表名 表名
。
例如,我们有一张叫 users
的表,包含 id
、name
、email
和 phone
等字段,现在要删除 name
字段重复的数据,只保留一条。
CREATE TABLE temp_users AS SELECT DISTINCT * FROM users;
-- 确认无误后再执行下面语句
DROP TABLE users;
RENAME TABLE temp_users TO users;
以上的 SQL 语句的意思是,将 users
表中没有重复记录的数据复制到一张临时表 temp_users
中。确认无误后,先删除原来的表 users
,再将临时表 temp_users
重命名为原来的表名 users
。
结语
以上就是 MySQL 数据库删除重复数据只保留一条的两种方法。一定要谨慎执行,不要将有用的数据误删,请先备份数据再执行相关操作。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mysql数据库删除重复数据只保留一条方法实例 - Python技术站