Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 返回重复记录_Mysql_Ruby On Rails_Duplicates - Fatal编程技术网

Mysql 返回重复记录

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

我只想从表中返回重复的记录。在我的例子中,如果col1、col2、col3和col4中有多个记录具有相同的值,则记录是重复的

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