📅  最后修改于: 2023-12-03 15:35:05.976000             🧑  作者: Mango
在 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 BY
和 HAVING
筛选出需要删除的重复行,然后使用 DELETE
语句将它们删除。
假设我们有一个名为 users
的表,其中有三列:id
、name
和 email
。如果我们需要删除表中 email
列中的重复数据,可以使用以下语句:
DELETE FROM users
WHERE email IN
(SELECT email
FROM users
GROUP BY email
HAVING COUNT(*) > 1);
这会删除 email
列中重复的行,保留只出现一次的行。
注意:删除操作需要谨慎,一旦删除,数据将无法恢复。在使用时请务必确认操作是否正确,建议在测试环境中进行测试。