关于mysql数据库中重复数据的操作

Posted oceangoing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于mysql数据库中重复数据的操作相关的知识,希望对你有一定的参考价值。

今天用查数据库的时候发现好多问题,所以在这里记录一下

<!-- 查询A表中重复的idcard -->

 1 SELECT
 2     *
 3 FROM
 4     A
 5 WHERE
 6     idcard IN (
 7         SELECT
 8             idcard
 9         FROM
10             A
11         GROUP BY
12             idcard
13         HAVING
14             count(idcard) > 1
15     )

 

<!-- 查A,B两个表某一字段表相同的数据 -->

 1 SELECT  *  FROM
 2 
 3   A a,B b
 4 
 5 WHERE
 6 
 7   a.idcard=b.idcard
 8 
 9 GROUP BY
10 
11   b.idcard

<!-- 删除表中重复的字段,只保留id最小的那个数据-->

(这里的别名必须有,没有别名的话会报错)

 1 <!-- 删除表中重复的数据 -->
 2 DELETE FROM A
 3 WHERE
 4     idcard IN (SELECT
 5         *
 6     FROM
 7         (SELECT
 8             idcard
 9         FROM
10             A
11         GROUP BY idcard
12         HAVING COUNT(idcard) > 1) t1)
13     AND id NOT IN (SELECT
14         *
15     FROM
16         (SELECT
17             MIN(id)
18         FROM
19             A
20         GROUP BY idcard
21         HAVING COUNT(idcard) > 1) t2)

<!-- 查找不存在与另一张表中的数据 -->

1 <!-- 查找A表有B表没有的数据 -->
2 SELECT * 
3     from A a 
4 WHERE NOT EXISTS(
5     SELECT idcard 
6         from B b
7     WHERE
8         a.idcard=b.idcard
9 )

<!-- 也可以这样写 -->

SELECT

  *

 FROM

  A

 WHERE 

  id NOT IN (

    SELECT id FROM B

  )

 

以上是关于关于mysql数据库中重复数据的操作的主要内容,如果未能解决你的问题,请参考以下文章

在Android中将数据从基本活动发送到片段[重复]

关于数据库建表时的有趣实例--关键字重复

append() 在这个代码片段中是如何工作的?与特定变量混淆[重复]

linux中怎么查看mysql数据库版本

将数据从活动发送到片段android工作室[重复]

Mysql高手系列 - 第14篇:详解事务