SQL 删除重复记录

  • Post category:MySQL

在 SQL 中,我们可以使用多种方法来删除重复记录。以下是 SQL 删除重复记录的完整攻略,含两条实例:

  1. 使用 DISTINCT

我们可以使用 DISTINCT 关键字来删除重复记录。例如,以下 SQL 语句将删除表中重复的记录:

DELETE FROM table_name
WHERE ID NOT IN (
  SELECT MIN(ID)
  FROM table_name
  GROUP BY column1, column2, ...
);

在上述语句中,我们使用子查询来获取每个组中的最小 ID,并使用 WHERE 子句来指定要删除的记录。需要注意的是,我们必须在 GROUP BY 子句中指定所有非重复列。

  1. 使用临时表

我们可以使用临时表来删除重复记录。例如,以下 SQL 语句将创建一个临时表,将不重复的记录插入该表中,然后删除原始表并将临时表重命名为原始表:

CREATE TABLE temp_table AS
SELECT DISTINCT *
FROM table_name;

DROP TABLE table_name;

ALTER TABLE temp_table
RENAME TO table_name;

在上述语句中,我们使用 CREATE TABLE 语句创建一个临时表,并使用 SELECT DISTINCT 语句将不重复的记录插入该表中。然后,我们使用 DROP TABLE 语句删除原始表,并使用 ALTER TABLE 语句将临时表重命名为原始表。

总之,在 SQL 中,我们可以使用 DISTINCT 或临时表来删除重复记录。需要注意的是,我们必须小心使用这些方法,以避免意外删除记录或影响性能。同时,我们需要根据具体情况选择使用哪种方法。