MySQL 中删除重复的数据并只保留一条
warning:
这篇文章距离上次修改已过200天,其中的内容可能已经有所变动。
在MySQL中,删除重复数据通常意味着保留每组重复数据中的一条记录,并删除其余的重复记录。以下是一个示例SQL查询,它使用了临时表和子查询来实现这个目标:
-- 假设我们操作的表名为 `your_table`,需要保留的唯一字段为 `id`
-- 创建一个包含不重复数据的临时表
CREATE TEMPORARY TABLE IF NOT EXISTS temp_table AS
SELECT MIN(id) AS min_id
FROM your_table
GROUP BY your_table.duplicate_column1, your_table.duplicate_column2, ...;
-- 删除原表中的数据
DELETE t1 FROM your_table t1 INNER JOIN temp_table t2
ON t1.id = t2.min_id;
-- 清理临时表
DROP TEMPORARY TABLE IF EXISTS temp_table;
在这个例子中,your_table
是你想要清理的表,duplicate_column1
, duplicate_column2
, ... 是用来识别重复条目的列。临时表 temp_table
被创建以存储每组重复数据中的最小 id
,然后原表中的数据与这个临时表进行连接和删除操作,最后清理临时表。
请根据你的实际表结构和需要保留的数据条件相应地替换 your_table
, duplicate_column1
, duplicate_column2
, ... 和 id
。
评论已关闭