首页  >  文章  >  数据库  >  如何删除重复行同时保留最旧的提交?

如何删除重复行同时保留最旧的提交?

Linda Hamilton
Linda Hamilton原创
2024-11-01 05:54:27271浏览

 How to Delete Duplicate Rows While Keeping the Oldest Submission?

管理重复行:保留最旧的提交

重复数据会严重影响任何数据库的完整性和可用性。在这种情况下,我们的目标是根据subscriberEmail字段消除重复行,仅保留原始提交。

为了在不诉诸表交换技术的情况下实现这一点,我们可以使用以下SQL查询:

delete x 
from myTable x
join myTable z on x.subscriberEmail = z.subscriberEmail
where x.id > z.id

此查询使用表别名的功能。通过为 myTable 表创建别名 x 和 z,我们可以比较同一表中的行。具体来说,我们在订阅者电子邮件字段上连接 x 和 z,从而有效地创建自连接。

where 子句执行关键的过滤。它消除了 x 中 id 字段大于 z 中相应 id 字段的记录。这可确保只有非原始(重复)提交才会被删除。

要进一步提高性能,请考虑在subscriberEmail 列上实现UNIQUE 索引。这将自动防止将来重复的条目插入到您的表中。

通过实现此查询,您可以有效地删除重复的行,保留每个电子邮件地址最旧的提交,而无需复杂的表操作或数据重组过程。

以上是如何删除重复行同时保留最旧的提交?的详细内容。更多信息请关注PHP中文网其他相关文章!

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