查找并显示重复项

时间:2009-04-16 02:56:49

标签: sql mysql database

我有一张桌子。我想在这张表格中搜索重复的标题 让我们说我的数据如下:

  

title1,title2,title3,title1,title4,title2,title9

我希望我的查询能够搜索此表并仅输出重复项。所以输出看起来像:
TITLE1
TITLE1
标题2
TITLE2

我知道如何找到重复项,但它只显示了其中一个副本,而不是两个。

SELECT id, title, artist_id FROM sm019_songs GROUP BY title HAVING count(title) > 1

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

这是使用子查询执行此操作的一种方法。将子查询首先加载到临时表中可能是有意义的。 (这可以在SQL服务器中运行,不确定MySql的确切语法是什么。)

select id, title, artist_id
from sm019_songs
where title in
(
    SELECT title
    FROM sm019_songs
    GROUP BY title
    HAVING count(title) > 1
)

答案 1 :(得分:0)

这是我在mysql中提出的:

CREATE TEMPORARY TABLE u (title varchar(250))
TYPE=HEAP;
INSERT INTO u
SELECT title FROM t group by title having count(title) > 1;

SELECT t.title FROM u,t where u.title = t.title

答案 2 :(得分:0)

我只是加入桌子:

SELECT S1.*, S2.*
FROM songs S1, songs S2
WHERE S1.title = S2.title
  AND S1.id != S2.id

-----Ñ