码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2019-01-24 13:12:18      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:keyword   select   存在   复数   class   mysql数据库   l数据库   div   having   

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

<!-- 查询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数据库中重复数据的操作

标签:keyword   select   存在   复数   class   mysql数据库   l数据库   div   having   

原文地址:https://www.cnblogs.com/oceangoing/p/10313628.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!