广告
返回顶部
首页 > 资讯 > 数据库 >MySQL查询重复数据
  • 715
分享到

MySQL查询重复数据

MySQL查询重复数据 2018-06-05 21:06:13 715人浏览 无得
摘要

  假设有一个用户表 user,数据如下: 1、查询表中 uid 重复的数据 SELECT id, uid, name FROM USER WHERE uid IN (SELECT

MySQL查询重复数据

 

假设有一个用户表 user,数据如下:

1、查询表中 uid 重复的数据

SELECT
  id,
  uid,
  name
FROM USER
WHERE uid IN (SELECT
    uid
  FROM USER
  GROUP BY uid
  HAVING COUNT(uid) > 1);

2、查询表中重复数据,排除最小id

SELECT
  id,
  uid,
  name
FROM user
WHERE uid IN (SELECT
    uid
  FROM user
  GROUP BY uid
  HAVING COUNT(uid) > 1)
AND id NOT IN (SELECT
    MIN(id)
  FROM user
  GROUP BY uid
  HAVING COUNT(uid) > 1);

3、删除表中重复数据,如果是重复数据,则保留id最小的一条

DELETE
  FROM USER
WHERE id IN (SELECT
      u.id
    FROM (SELECT
        id
      FROM USER
      WHERE uid IN (SELECT
          uid
        FROM USER
        GROUP BY uid
        HAVING COUNT(uid) > 1)
      AND id NOT IN (SELECT
          MIN(id)
        FROM USER
        GROUP BY uid
        HAVING COUNT(uid) > 1)) AS u);

4、遇到的问题:

一开始直接使用以下语句删除,报错:You can’t specify target table ‘user’ for update in FROM clause

 

DELETE
  FROM USER
WHERE id IN (SELECT
      id
    FROM USER
    WHERE uid IN (SELECT
        uid
      FROM USER
      GROUP BY uid
      HAVING COUNT(uid) > 1)
    AND id NOT IN (SELECT
        MIN(id)
      FROM USER
      GROUP BY uid
      HAVING COUNT(uid) > 1));

 

查资料后得知:
因为在 Mysql 里,不能先 select 一个表的记录,在按此条件进行更新和删除同一个表的记录。
解决办法:
将 select 得到的结果,再通过中间表 select 一遍。
sql如下:

 

DELETE
  FROM USER
WHERE id IN (SELECT
      u.id
    FROM (SELECT
        id
      FROM USER
      WHERE uid IN (SELECT
          uid
        FROM USER
        GROUP BY uid
        HAVING COUNT(uid) > 1)
      AND id NOT IN (SELECT
          MIN(id)
        FROM USER
        GROUP BY uid
        HAVING COUNT(uid) > 1)) AS u);

 

您可能感兴趣的文档:

--结束END--

本文标题: MySQL查询重复数据

本文链接: https://www.lsjlt.com/news/6125.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL查询重复数据
      假设有一个用户表 user,数据如下: 1、查询表中 uid 重复的数据 SELECT id, uid, name FROM USER WHERE uid IN (SELECT ...
    99+
    2018-06-05
    MySQL查询重复数据
  • MySQL 根据多字段查询重复数据
    MySQL 根据多字段查询重复数据 在实际的数据库应用中,我们经常需要根据多个字段来查询重复的数据。MySQL 提供了一些方法来实现这个功能,让我们能够快速准确地找到和处理重复数据。本文将介绍如何使用 MySQL 来根据多字段查询重复数据,...
    99+
    2023-09-30
    数据库 oracle
  • 怎么在MySQL中查询重复数据
    今天就跟大家聊聊有关怎么在MySQL中查询重复数据,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。表结构如下图所示:表明:brand 操作:...
    99+
    2022-10-18
  • 【常用SQL】MySQL查询重复的数据
    查询重复的数据可以使用SQL中的GROUP BY和HAVING子句。以下是一个示例查询,可以检查名为table_name的表中是否有重复的column_name列的值: SELECTc...
    99+
    2023-08-31
    mysql sql 数据库
  • MYSQL双表查询时出现数据重复
    今天在做双表查询的时候出现了同一条数据出现2次的问题(重复数据)。 前景提要:   A表和B表   A表中有A.sourseId。B表中也有B.sourseId。                           A表中有A.accoun...
    99+
    2015-12-26
    MYSQL双表查询时出现数据重复 数据库入门 数据库基础教程 数据库 mysql
  • MySQL中怎么查询不重复的数据
    这篇文章主要介绍了MySQL中怎么查询不重复的数据的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇MySQL中怎么查询不重复的数据文章都会有所收获,下面我们一起来看看吧。 ...
    99+
    2023-04-28
    mysql
  • MySQL查询表中重复数据的实现
    目录一、查询重复记录方法1方法2:使用别名as方法3,不推荐,执行速度较慢二、总结一、查询重复记录 例:查询员工表里出现重复姓名的记录 思路:1、查看重复记录,首先要使用分组函数(group by),再用聚合函数中的计数...
    99+
    2023-08-25
    MySQL查询重复数据
  • Mysql查询某字段值重复的数据个数
    select gongchengid,count(*) as count from erp_wangongbg group by gongchengid having count>1;  ...
    99+
    2019-11-21
    Mysql查询某字段值重复的数据个数
  • mongodb怎么查询重复数据
    要查询重复数据,你可以使用MongoDB的聚合框架和聚合管道操作符来实现。以下是一种可能的解决方案:1. 使用$group操作符按照...
    99+
    2023-10-19
    mongodb
  • 数据库之MySQL查询去重数据
    最近遇到了一个问题,当时我的第一反应是导出来,用wps的Excel表格的删除重复项的功能,简单粗暴又直接,但是没有考虑到数据量太大的情况,会导致Excel打开缓慢。这个时候就考虑有没有更方便快捷的方法,网上也查询了很多方法,但是实践出真知,...
    99+
    2023-09-03
    数据库
  • mysql去重查询表中数据
    1、distinct select count(distinct CName) from teble select count(CName) from (select dist...
    99+
    2022-10-18
  • MySQL 数据库查询数据,过滤重复数据保留一条数据-
    转自: http://www.maomao365.com/p=10564  摘要: 下文讲述MySQL数据库查询重复数据时,只保留一条数据的方法 实现思路: 在MySQL数据库中没有row_number函数,所以我们需变向实现此功能...
    99+
    2021-10-02
    MySQL 数据库查询数据,过滤重复数据保留一条数据-
  • thinkphp如何查询重复数据库
    这篇文章主要介绍了thinkphp如何查询重复数据库的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇thinkphp如何查询重复数据库文章都会有所收获,下面我们一起来看看吧。thinkphp查询重复数据库的方法:...
    99+
    2023-07-04
  • 分页查询出现重复数据
    目录 问题描述 问题表现  问题原因  解决方法 问题描述 使用laravel做分页列表查询接口,每页返回5条数据,发现请求1页,2页最后一条数据出现重复,而总数据量不变,导致有一条数据被覆盖。 问题表现  第一页请求参数如下: 返回...
    99+
    2023-09-12
    数据库 php分页查询
  • 怎么有效地查询MySQL表中的重复数据
    在MySQL数据库中,偶尔会遇到需要查找表中出现的重复数据的情况。这种情况下,我们可以通过编写一些SQL查询语句轻松地找到并处理这些重复行。本文将介绍一些常见的方法和技巧,帮助你有效地查询MySQL表中的重复数据。 方法一:使用COUNT(...
    99+
    2023-08-21
    mysql 数据库 sql
  • MySQL数据库——复杂查询(二)
    目录 第1关 查询学生平均分 一、本关任务:根据提供的表和数据,查询平均成绩小于60分的同学的学生编号(s_id)、学生姓名(s_name)和平均成绩(avg_score),要求平均成绩保留2位小数点。(注意:包括有成绩的和无成绩的) 二、...
    99+
    2023-10-28
    数据库 mysql
  • 查询数据库中的重复数据记录
    ========第一篇========= 在一张表中某个字段下面有重复记录,有很多方法,但是有一个方法,是比较高效的,如下语句: select data_guid from adam_entity_datas a wher ...
    99+
    2023-09-10
    数据库 sql mysql
  • mysql如何查询重复字段
    这篇文章给大家分享的是有关mysql如何查询重复字段的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 在mysql中,可以利用count()函数来查询重...
    99+
    2022-10-19
  • mongodb如何查询重复数据的条数
    mongodb中查询重复数据条数的方法:1、在cmd下进入mongdb目录中的bin文件夹;2、输入“mongod --dbpath (数据存放的文件夹)”命令启动mongodb服务;3、使用“show dbs”查看数据库;4、再使用“db...
    99+
    2022-10-05
  • oracle怎么查询不重复的数据
    要查询不重复的数据,你可以使用Oracle中的DISTINCT关键字。DISTINCT关键字用于返回唯一的值,也就是去除重复的值。以...
    99+
    2023-08-11
    oracle
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作