【问题标题】:Fetch duplicate rows with SQL使用 SQL 获取重复行
【发布时间】:2013-05-14 17:04:37
【问题描述】:

我正在尝试开发一个查询来获取具有重复值的行,我需要获取两个记录,即重复记录和真实记录,例如

表格

id  keyword
-------------------
1   Apple
2   Orange
3   Apple
4   Grape
5   Banana
6   Grape

查询结果应该是:

id  keyword
-------------------
1   Apple
3   Apple
4   Grape
6   Grape

请任何人帮助我!

【问题讨论】:

标签: mysql sql


【解决方案1】:

这可能会有所帮助:

SELECT t1.id, t1.keyword                                     
FROM table t1              
INNER JOIN table t2                   
ON t1.id != t2.id           
AND t1.keyword=t2.keyword

在 SQL Fiddle 上测试 http://sqlfiddle.com/#!2/44dbb/1/0

【讨论】:

【解决方案2】:

一种方法:

SELECT * 
FROM `table` t1
WHERE 
    (SELECT COUNT(*) FROM `table` t2 WHERE t2.keyword = t1.keyword) > 1

还有一种方式:

SELECT t1.*
FROM `table` t1
JOIN `table` t2 ON t1.keyword = t2.keyword
WHERE t1.id != t2.id

【讨论】:

    【解决方案3】:

    查询:

    select * from 
    table where keyword in
    (select keyword 
    from table
    group by keyword 
    having count(keyword)>1)
    

    【讨论】:

    • @Saritha 如果可行,您应该尝试将其视为答案。
    • @Luv 猜她不接受任何答案。查看她的问题历史! :O
    猜你喜欢
    • 1970-01-01
    • 2021-11-04
    • 2012-02-09
    • 1970-01-01
    • 2014-07-05
    • 1970-01-01
    • 2011-04-25
    • 2012-03-17
    • 2017-01-03
    相关资源
    最近更新 更多