如何根据订阅者电子邮件删除重复行,同时保留最旧的提交?

Linda Hamilton
发布: 2024-11-03 15:10:30
原创
548 人浏览过

How do I remove duplicate rows based on subscriberEmail while keeping the oldest submission?

删除重复行,同时保留最旧的提交

要根据subscriberEmail字段消除重复行,同时保留原始提交,请按照以下步骤操作:

<code class="sql">delete x
from myTable x
join myTable z on x.subscriberEmail = z.subscriberEmail
where x.id > z.id;</code>
登录后复制

解释:

  • 此查询使用 join 子句将表与自身连接起来。这将创建表的两个实例,别名为“x”和“z”。
  • where 子句比较两个实例的 id 值。实例“x”中 id 大于实例“z”中相应行的行表示重复提交。
  • 删除语句识别实例“x”中的这些重复行并将其从表中删除。
  • 结果是一个包含唯一订阅者电子邮件的表格,其中每个电子邮件地址仅保留原始提交(具有最低 ID)。

附加说明:

  • 为了防止将来出现重复,请考虑在subscriberEmail 列上创建一个UNIQUE 索引。
  • 上面的查询可以通过组合join 和where 子句来简化:
<code class="sql">delete x
from myTable x
join myTable z
on x.subscriberEmail = z.subscriberEmail and x.id > z.id;</code>
登录后复制

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板