首页 > 知识问答文章正文

用Sql语句如何查询有重复的数据

知识问答 2022-02-23 04:12:46 admin

一个数据库表里可能有些数据插入多次了,导致有重复的数据。如何查询出这些重复的数据?一起看下。

操作方法

【步骤01】

先看下我们表里的数据,从图中看到,现在表里有多行name一样的数据。

【步骤02】

如何查询出这些重复的数据呢?我们可以用exists语句来处理。代码如图,
exists子查询是先得到有相同名字的记录,然后再在exists外查询其它字符的数据。

【步骤03】

运行结果如图,查到了这些重复名字的数据行。

【步骤04】

除了用exists语句,我们还可以用group by语句和having语句结合来查询。代码如图,group by name的意思是以name字段为分组,而having c > 1的意思是分组里的name的个数大于1的。

【步骤05】

运行后的结果也找出了这个重复的name。即所有的name有相同的个数大于1的都找出来了。

【步骤06】

这些有重复name的数据,其它字段怎么查询出来呢?
有人说用where语句就行了,where name in('wenwen','sohu'),代码如图

【步骤07】

结果如图,这样确实可以查到。
但在查询前我们并不知道哪些name是有重复的。况且如果数据量大的话,相同的name就有可能有几百个,这个in语句就有得写了。

【步骤08】

那怎么查询?可以用inner join联合查询语句。代码如图

【步骤09】

运行后,得到正确的查询结果。
可以看到用联合查询,我们并不需要事先知道有哪些name是重复的,也不必担心有太多的重复数据。

标签:

发表评论

评论列表

可盼网Copyright @ 2011-2024 All Rights Reserved. |版权所有 备案号: 豫ICP备2022006457号-8