Mysql 返回重复记录
我只想从表中返回重复的记录。在我的例子中,如果col1、col2、col3和col4中有多个记录具有相同的值,则记录是重复的Mysql 返回重复记录,mysql,ruby-on-rails,duplicates,Mysql,Ruby On Rails,Duplicates,我只想从表中返回重复的记录。在我的例子中,如果col1、col2、col3和col4中有多个记录具有相同的值,则记录是重复的 SELECT m.* FROM ( SELECT col1, col2, col3, col4, COUNT(*) FROM mytable GROUP BY col1, col2, col3, col4 HAVING COUNT(*) > 1
SELECT m.*
FROM (
SELECT col1, col2, col3, col4, COUNT(*)
FROM mytable
GROUP BY
col1, col2, col3, col4
HAVING COUNT(*) > 1
) md
JOIN mytable m
ON m.col1 = md.col1
AND m.col2 = md.col2
AND m.col3 = md.col3
AND m.col4 = md.col4
如果要显示其他列,可以将上述列加入表中:
SELECT t.*
, dup.cnt
FROM yourTable t
JOIN
( SELECT col1, col2, col3, col4
, COUNT(*) AS cnt
FROM yourTable
GROUP BY col1, col2, col3, col4
HAVING COUNT(*) > 1
) AS dup
ON t.col1 = dup.col1
AND t.col2 = dup.col2
AND t.col3 = dup.col3
AND t.col4 = dup.col4
这难道不只是返回所有col1、col2、col3、col4
都notnull
的行吗?
SELECT t.*
, dup.cnt
FROM yourTable t
JOIN
( SELECT col1, col2, col3, col4
, COUNT(*) AS cnt
FROM yourTable
GROUP BY col1, col2, col3, col4
HAVING COUNT(*) > 1
) AS dup
ON t.col1 = dup.col1
AND t.col2 = dup.col2
AND t.col3 = dup.col3
AND t.col4 = dup.col4