`
bo_hai
  • 浏览: 553470 次
  • 性别: 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删除重复数据保留最小的id 的解决方法

    在网上查找删除重复数据保留id最小的数据,方法如下: DELETE FROM people WHERE peopleName IN ( SELECT peopleName FROM people GROUP BY peopleName HAVING count(peopleName) &gt; 1 ) AND peopleId ...

    MySQL处理重复数据的方法

    有些 MySQL 数据表中可能存在重复的记录,有些情况我们允许重复数据的存在,但有时候我们也需要删除这些重复的数据。 本章节我们将为大家介绍如何防止数据表出现重复数据及如何删除数据表中的重复数据。 防止表中...

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

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

    删除MySQL重复数据的方法

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

    MySQL 去除重复数据实例详解

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

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

    主要为大家详细介绍了MySQL处理重复数据的实现代码,如何防止数据表出现重复数据及如何删除数据表中的重复数据,感兴趣的小伙伴们可以参考一下

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

    查重是我们在工作中经常会遇到的一个需求,下面这篇文章主要给大家介绍了关于MySQL查询重复数据(删除重复数据保留id最小的一条为唯一数据)的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有...

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

    主要介绍了MySQL 处理重复数据的方法,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下

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

    代码如下:CREATETABLE`users`(`id`int(10)NOTNULLAUTO_...原因是mysql删除动作不能带有本表的查询动作,意思是你删除users表的东西不能以users表的信息为条件所以这个语句会报错,执行不了。只要通过创建临时表作

    mysql查找删除表中重复数据方法总结

    要查找重复数据,我们可以使用mysql里的having语句,如图。 执行这个语句后,我们可以看到现在的结果里显示的就是表中重复数据的字段。 要删除这些重复的数据,我们找出这些数据的ID,在select语句里,添加id字段...

    MySQL 处理重复数据

    有些 MySQL 数据表中可能存在重复的记录,有些情况我们允许重复数据的存在,但有时候我们也需要删除这些重复的数据。 本章节我们将为大家介绍如何防止数据表出现重复数据及如何删除数据表中的重复数据。 防止表中...

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

    主要介绍了MySQL中删除重复数据的简单方法,比起一般的NOT IN语句的效率更为高,需要的朋友可以参考下

    MySQL数据库中删除重复记录的方法总结[推荐]

    表结构: mysql&gt; desc demo; +——-+——————+——+—–+———+—————-+ | Field | Type | Null | Key | Default | Extra | +——-+——————+——+—–+———+—————-+ | id | ...数据: mysql&gt; se

Global site tag (gtag.js) - Google Analytics