📜  sql 删除重复项 - SQL (1)

📅  最后修改于: 2023-12-03 15:35:05.976000             🧑  作者: Mango

SQL 删除重复项

在 SQL 中,我们可以使用 DISTINCT 来去除表中的重复数据。

基本语法
SELECT DISTINCT column_name
FROM table_name;

其中,column_name 为需要去重的列名,table_name 为需要去重的表名。

删除重复行

如果我们需要删除表中重复的行,可以使用以下语句:

DELETE FROM table_name
WHERE column_name IN
(SELECT column_name
FROM table_name
GROUP BY column_name
HAVING COUNT(*) > 1);

其中,table_name 为需要删除重复行的表名,column_name 为需要对比的列名。

这段 SQL 语句会先使用 GROUP BYHAVING 筛选出需要删除的重复行,然后使用 DELETE 语句将它们删除。

示例

假设我们有一个名为 users 的表,其中有三列:idnameemail。如果我们需要删除表中 email 列中的重复数据,可以使用以下语句:

DELETE FROM users
WHERE email IN
(SELECT email
FROM users
GROUP BY email
HAVING COUNT(*) > 1);

这会删除 email 列中重复的行,保留只出现一次的行。

注意:删除操作需要谨慎,一旦删除,数据将无法恢复。在使用时请务必确认操作是否正确,建议在测试环境中进行测试。