`
bo_hai
  • 浏览: 563815 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

MySql 删除重复数据的方法

 
阅读更多

1、网上介绍的方法如下:

DELETE FROM p2p_order
WHERE user_id IN (SELECT user_id FROM p2p_order GROUP BY user_id HAVING COUNT(user_id) > 1)
AND id NOT IN (SELECT  MAX(id) FROM p2p_order GROUP BY user_id HAVING COUNT(user_id) > 1);

 执行上述SQL,报错:

<e>查询:delete from p2p_order where user_id in (SELECT user_id FROM p2p_order GROUP BY user_id HAVING COUNT(user_id) > 1) and id not in ...

错误代码: 1093
You can't specify target table 'p2p_order' for update in FROM clause

 上述错误的意思是:不能在delete中执行一个查询操作。优化方案如下:

CREATE TABLE tmp AS SELECT  MAX(id) t_id FROM p2p_order GROUP BY user_id HAVING COUNT(user_id) > 1;

DELETE FROM p2p_order  WHERE id NOT IN (SELECT  t.t_id FROM tmp AS t);

DROP TABLE tmp;

 执行delete时,请检查一下tmp中是否有数据,防止误删除。

分享到:
评论
1 楼 bo_hai 2019-03-15  
我来评论一下。

相关推荐

    mysql优化小技巧之去除重复项实现方法分析【百万级数据】

    本文实例讲述了mysql优化小技巧之去除重复项实现方法。分享给大家供大家参考,具体如下: 说到这个去重,脑仁不禁得一疼,尤其是出具量比较大的时候。毕竟咱不是专业的DB,所以嘞,只能自己弄一下适合自己去重方法了...

    MySQL删除重复记录

    ### MySQL删除重复记录 在MySQL中,重复记录可能由于各种原因而出现,比如数据导入错误、系统故障或人为操作失误等。这些重复记录不仅浪费存储空间,还可能导致查询结果不准确,因此及时删除它们是非常必要的。 ##...

    MySQL中如何处理重复数据(Duplicate)?

    MySQL 中处理重复数据(Duplicate)的方法 MySQL 中处理重复数据(Duplicate)的主要方式是使用 INSERT INTO ... ON DUPLICATE KEY UPDATE 语句或 REPLACE INTO 语句。下面是这两种方法的详细解释: 一、INSERT ...

    MySQL 查询重复内容只显示一条

    标题“MySQL 查询重复内容只显示一条”涉及到的是在MySQL数据库中如何处理重复数据的问题。在数据分析或数据存储过程中,有时我们需要找出并处理重复的记录,只保留一条作为代表。这通常可以通过聚合函数和分组来...

    mysql多字段删除重复数据保留id最大的.txt

    mysql多字段删除重复数据保留id最大的.txt

    删除MySQL重复数据的方法

    本文实例讲述了删除MySQL重复数据的方法。分享给大家供大家参考。具体方法如下: 项目背景 在最近做的一个linux性能采集项目中,发现线程的程序入库很慢,再仔细定位,发现数据库里面很多冗余数据。因为在采集中,...

    MySQL 去除重复数据实例详解

    MySQL 去除重复数据实例详解 有两个意义上的重复记录,一是完全重复的记录,也即所有字段均都重复,二是部分字段重复的记录。对于第一种重复,比较容易解决,只需在查询语句中使用distinct关键字去重,几乎所有...

    MYSQL删除重复数据的简单方法

    下面将详细解释这个问题,并提供几种有效的方法来处理MySQL中删除重复数据的情况。 首先,我们来看一下原始的删除语句: ```sql DELETE FROM users WHERE id IN (SELECT MIN(id) FROM users GROUP BY name HAVING ...

    MySQL处理重复数据的方法

    这里,我们主要探讨如何防止和删除MySQL数据表中的重复数据。 首先,为了防止数据表出现重复数据,我们可以利用 PRIMARY KEY(主键) 或 UNIQUE(唯一) 索引来实现。主键是表中的一个或多个字段,其值在整个表中是...

    mysql查找删除重复数据并只保留一条实例详解

    本文将详细介绍如何在MySQL中查找并删除重复数据,同时只保留其中一条,具体以实例进行解析。 首先,假设我们有一个名为`test`的表格,包含以下字段:`school_id`、`school_name`、`total_student`和`test_takers`...

    Mysql删除重复数据保留最小的id 的解决方法

    在并发环境下,为了防止在删除过程中其他事务插入新的重复数据,可以使用MySQL的锁表功能。例如,可以使用`LOCK TABLES`命令锁定表,确保在删除操作期间不会有任何其他修改。但在实际应用中,应谨慎使用锁,因为它...

    MySQL查询重复数据(删除重复数据保留id最小的一条为唯一数据)

    MySQL作为常用的数据库管理系统,提供了多种方法处理重复数据。本文主要探讨如何查询并删除MySQL中的重复数据,同时保留每个重复组中ID最小的一条记录。 首先,我们需要找到表中的重复数据。假设我们有一个名为`...

    很全面的MySQL处理重复数据代码

    MySQL处理重复数据是一个常见的数据库管理任务,涉及到数据的完整性和一致性。本文将详细介绍如何在MySQL中防止、统计和过滤重复数据。 首先,防止表中出现重复数据是确保数据质量的关键步骤。在MySQL中,可以通过...

    MySQL 删除数据库中重复数据方法小结

    在MySQL数据库管理中,删除重复数据是一个常见的需求,特别是在数据导入、同步或用户输入错误时。处理这种情况需要谨慎,以确保不会丢失重要信息。本文将详细介绍几种常见的删除重复数据的方法。 1. **基础方法:...

    MySQL 处理重复数据的方法(防止、删除)

    处理MySQL中的重复数据涉及多个层面,包括在设计阶段通过设置主键和唯一索引来预防,使用`INSERT IGNORE`或`REPLACE INTO`来处理插入时的重复,以及利用`GROUP BY`, `HAVING`, `DISTINCT`等查询构造来查找和删除重复...

    MySQL中删除重复数据的简单方法

    本文将介绍一种高效的方法,适用于MySQL中删除重复数据。 首先,我们假设有一个名为`data_content_152`的表,其中包含大量的重复记录。目标是保留唯一的数据,并删除重复项。以下是这种方法的步骤: 1. **创建临时...

Global site tag (gtag.js) - Google Analytics