gpt4 book ai didi

MySQL:根据条件删除重复字段,同时保留所有其他数据

转载 作者:搜寻专家 更新时间:2023-10-30 23:32:31 27 4
gpt4 key购买 nike

需要一些有关 MySQL 查询的帮助。

如果记录有重复的电子邮件字段,则只保留状态 = 事件的行,同时仍显示所有其他记录。

STATUS      EMAIL
—-------------------------------
active p1@email.com
—-------------------------------
inactive p1@email.com
—-------------------------------
active p2@email.com
—-------------------------------
active p3@email.com
—-------------------------------
active p4@email.com
—-------------------------------
Inactive p4@email.com

最佳答案

这里假设一些事情:

  • 不选择没有重复的行。
  • 不选择没有事件的重复行。

DEMO

基本上,子查询确定哪些电子邮件是重复的。外部查询使用它来仅选择那些具有重复电子邮件的记录。

select *
from
email_status a
inner join
(
select email, count(email)
from email_status
group by email
having count(email) > 1
) b
on a.email = b.email
where status = 'active'

编辑:根据下面的回复,唯一的选择标准变为 status = 'active' 假设对于给定的电子邮件只有 1 条记录可以处于事件状态。所需要的只是一个 where 子句:

SELECT *
FROM email_status
WHERE status = 'active'

关于MySQL:根据条件删除重复字段,同时保留所有其他数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47462254/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com