Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.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_Sql - Fatal编程技术网

Mysql 检查具有两行的数据库中是否存在重复

Mysql 检查具有两行的数据库中是否存在重复,mysql,sql,Mysql,Sql,我想通过比较两列来检查MySQL中是否存在重复: 链接的重复项不匹配,因为它涉及在特定列上查找重复值。这个问题是关于查找表示重复值的行 例如: id Column1 Column2 ------------------------- 3 1 <-This row is a dupe 3 2 3 3 3 1 <-This row i

我想通过比较两列来检查MySQL中是否存在重复:


链接的重复项不匹配,因为它涉及在特定列上查找重复值。这个问题是关于查找表示重复值的行

例如:

id    Column1    Column2
-------------------------
       3          1     <-This row is a dupe
       3          2
       3          3
       3          1     <-This row is a dupe
此查询应该是什么样的?

我的想法:

SELECT * FROM table
WHERE Column1 && Column2 is a dupe ;)

这是一个解决办法。通过having,您将获得存在多次的所有列。这个小组收集了所有的资料。计数也可以同时在两个或第2列上进行,这并不重要

您可以试试这个。这将为您提供所有重复条目

select column1,column2 from table_name group by column1,column2 having count(column1)>1

您可以使用此选项查找重复项:

SELECT column1, column2
 FROM yourtable
 GROUP BY column1, column2
 HAVING count(*) > 1;
要显示实际的重复行,您可以根据上述查询的结果
联接

SELECT * FROM yourtable yt1
 JOIN (SELECT column1, column2
 FROM yourtable
 GROUP BY column1, column2
 HAVING count(*) > 1) yt2 ON (yt2.column1=yt1.column1 AND yt2.column2=yt1.column2);

使用这段代码,我只从每个副本中获得一行。我需要每两(或更多)行扫描一次!按列1从表组中选择*,计数(第1列),第2列具有(计数(第1列)>1)哦,对不起,我的错误
select*,计数(第1列,第1列)从表具有(计数(第1列)>1)
。这个问题是关于查找表示重复值的行。@naggarwall11此代码只会给我每个重复值中的一个。不是所有的复制条目。yt1和yt2是什么?“Yourtable 1”等?@Mjukis:是的,它是Yourtable 1和Yourtable 2。如果您将
Yourtable
更改为
mytable
,则无需更改
yt1
yt2
。你只有一个表是正确的,但是你可以考虑<代码> yt2作为仅在这个查询期间存在的临时表。是的,你可以称之为占位符。我更喜欢称它们为别名,因为在提醒您上面有一个指向文档的链接时也使用了别名
SELECT column1, column2
 FROM yourtable
 GROUP BY column1, column2
 HAVING count(*) > 1;
SELECT * FROM yourtable yt1
 JOIN (SELECT column1, column2
 FROM yourtable
 GROUP BY column1, column2
 HAVING count(*) > 1) yt2 ON (yt2.column1=yt1.column1 AND yt2.column2=yt1.column2);