【问题标题】:MySQL - Keep rows where one entry is a value with multiple occurrences [duplicate]MySQL - 保留一个条目是多次出现的值的行[重复]
【发布时间】:2018-01-29 03:40:49
【问题描述】:

所以我被这个问题困住了,我猜我的 MySQL 不够好,无法自己解决。

作为一个例子,让我们考虑这个表:

绿色条目表示我的查询的所需输出,仅保留 ENTRY_2 是多次出现的值的行。

我现在尝试的都是这样的:

select *
FROM mytable
GROUP BY ENTRY_2
HAVING COUNT(*) > 1;

但出于明显的原因,它并不好(甚至不起作用)。

感谢您的宝贵时间。

【问题讨论】:

    标签: mysql sql database


    【解决方案1】:

    我猜

    SELECT * FROM mytable WHERE ENTRY_2 IN (
        SELECT ENTRY_2
        FROM mytable
        GROUP BY ENTRY_2
        HAVING COUNT(*) > 1
    );
    

    是你想要的。

    【讨论】:

      【解决方案2】:

      我会使用exists:

      select t.*
      from mytable t
      where exists (select 1 from mytable t2 where t2.entry2 = t.entry2 and t2.entry1 <> t.entry1);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-09-10
        • 2019-09-05
        • 2014-03-03
        • 1970-01-01
        • 2020-12-22
        • 1970-01-01
        • 2023-01-10
        • 2018-06-10
        相关资源
        最近更新 更多