sql—获取mysql中id不同的行

ryevplcw  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(334)

我在下表中提到:

Source     Value     e_mail               count          ID
RT-121     124566    aft.12@hotmail.com   PR12S          P-1
RT-122     124887    efyyhd@hotmail.com                  P-2
RT-123     124887    efyyhd@hotmail.com   PR12S          P-3
RT-124     484566    aft.19@hotmail.com                  P-7
RT-125     484566    aft.19@hotmail.com   PR12S          P-8
RT-126     124566    aft.12@hotmail.com   PR12S          P-1

我想写一个查询,让我的输出在哪里 Value 以及 e_mail 都是一样的 Count 或者 Null 或空白有不同的 ID .
所需输出:

Source     Value     e_mail               count          ID
RT-122     124887    efyyhd@hotmail.com                  P-2
RT-123     124887    efyyhd@hotmail.com   PR12S          P-3
RT-124     484566    aft.19@hotmail.com                  P-7
RT-125     484566    aft.19@hotmail.com   PR12S          P-8
ddrv8njm

ddrv8njm1#

一种方法使用 exists :

select t.*
from t
where exists (select 1
              from t t2
              where t2.value = t.value and
                    t2.e_mail = t.e_mail and
                    (t2.count <> '' xor t.count <> '') and
                    t2.source <> t.source
             );

带索引的 (value, e_mail, source) ,这可能是最快的方法。

相关问题