首页 >数据库 >mysql教程 >如何从表中删除重复行而不创建新表?

如何从表中删除重复行而不创建新表?

Linda Hamilton
Linda Hamilton原创
2024-12-26 01:56:09670浏览

How to Delete Duplicate Rows from a Table Without Creating a New Table?

从表中删除重复行

您有一个包含重复记录的表,并且您希望删除它们而不创建新表。假设您有一个唯一的 ID 字段,您可以使用以下查询:

DELETE FROM Table
WHERE ID NOT IN
(
SELECT MIN(ID)
FROM Table
GROUP BY Field1, Field2, Field3, ...
)

示例: 假设您有下表:

id action L1_name L1_data ... L11_data
1 action1 name1 data1 ... company1
2 action2 name2 data2 ... company2
3 action1 name1 data1 ... company1

查询将删除 id 为 3 的重复记录,留下以下内容表:

id action L1_name L1_data ... L11_data
1 action1 name1 data1 ... company1
2 action2 name2 data2 ... company2

注释:

  • “Table”和“ID”是代表名称。
  • 字段列表( "Field1, Field2, ...") 应包含除 ID 之外的所有字段。
  • 此查询可能会很慢,具体取决于关于字段和行数。
  • 如果您没有唯一索引,请添加一个以提高性能。

以上是如何从表中删除重复行而不创建新表?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn