管理重复行:保留最旧的提交
重复数据会严重影响任何数据库的完整性和可用性。在这种情况下,我们的目标是根据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中文网其他相关文章!