首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在MySQL中选择并仅显示重复记录

在MySQL中选择并仅显示重复记录
EN

Stack Overflow用户
提问于 2012-07-28 03:50:13
回答 12查看 108.9K关注 0票数 36

这个问题很简单,由于某种原因,我不能得到正确的结果,只显示重复的记录

代码语言:javascript
复制
Table   : Paypal_ipn_orders
id                              payer_email
1                               susan@gmail.com
2                               ryan@gmail.com   
3                               susan@gmail.com
4                               steve@gmail.com
5                               steve@gmail.com

SELECT id, COUNT( payer_email ) `tot`
FROM paypal_ipn_orders
GROUP BY payer_email
HAVING `tot` >1

样本输出

代码语言:javascript
复制
id       tot
1         2
4         2

预期输出

代码语言:javascript
复制
id       payer_email 
1        susan@gmail.com
3        susan@gmail.com
4        steve@gmail.com
5        steve@gmail.com

我怎样才能做到这一点?

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2012-07-28 03:56:04

代码语言:javascript
复制
SELECT id, payer_email
FROM paypal_ipn_orders
WHERE payer_email IN (
    SELECT payer_email
    FROM paypal_ipn_orders
    GROUP BY payer_email
    HAVING COUNT(id) > 1
)

sqlfiddle

票数 74
EN

Stack Overflow用户

发布于 2014-01-28 22:23:04

在我的情况下,IN太慢了(180秒)

所以我改用了JOIN (0.3秒)

代码语言:javascript
复制
SELECT i.id, i.payer_email
FROM paypal_ipn_orders i
INNER JOIN (
 SELECT payer_email
    FROM paypal_ipn_orders 
    GROUP BY payer_email
    HAVING COUNT( id ) > 1
) j ON i.payer_email=j.payer_email
票数 15
EN

Stack Overflow用户

发布于 2015-12-17 18:38:33

下面是一个简单的例子:

代码语言:javascript
复制
select <duplicate_column_name> from <table_name> group by <duplicate_column_name> having count(*)>=2

它肯定会起作用。:)

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11694761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档