在MySQL的同一个表中查找重复项

Fra*_*nco 14 mysql

我有一个有两列的表 - artist,release_id

我可以运行什么查询来显示重复记录?

比如我的桌子是

ArtistX : 45677
ArtistY : 378798
ArtistX : 45677
ArtistZ : 123456
ArtistY : 888888
ArtistX : 2312
ArtistY: 378798
Run Code Online (Sandbox Code Playgroud)

查询应显示

ArtistX : 45677
ArtistX : 45677
ArtistY : 378798
ArtistY : 378798
Run Code Online (Sandbox Code Playgroud)

a'r*_*a'r 49

如果存在重复项,您可以在感兴趣的列中使用分组.

SELECT
    artist, release_id, count(*) no_of_records
FROM table
GROUP BY artist, release_id
HAVING count(*) > 1;
Run Code Online (Sandbox Code Playgroud)


小智 10

SELECT
    artist, release_id, count(*) no_of_records, group_concat(id)
FROM table
GROUP BY artist, release_id
HAVING count(*) > 1;
Run Code Online (Sandbox Code Playgroud)

另外添加 group_concat(id) 可以获取重复项的所有 id。


Don*_*sto 5

SELECT id,artist,COUNT(*) FROM myTable
GROUP BY artist, release_id HAVING COUNT(*) > 1
Run Code Online (Sandbox Code Playgroud)