`
jimmy9495
  • 浏览: 296770 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论
阅读更多
表数据量不大,不考虑效率,按oracle的方式写个删除sql:
DELETE FROM boss_t_mobile_version_partner WHERE id NOT IN (SELECT MIN(t.id) FROM `boss_t_mobile_version_partner` t
GROUP BY t.`partner_no`)


报错:
You can't specify target table 'boss_t_mobile_version_partner' for update in FROM clause

mysql 不支持 这种写法。。。
delete不能直接删除本表里面查出的子查询结果。

用惯了oracle,现在用mysql,发现还是有不少蹩脚的地方,使用方式、引擎、大数据处理、效率、资源利用的差距不断显现了。

解决方法一:
要先弄个临时表

改成这样可以:
CREATE TABLE tmp AS SELECT MIN(t.id) AS id FROM `boss_t_mobile_version_partner` t GROUP BY t.`partner_no`;
DELETE FROM boss_t_mobile_version_partner WHERE id NOT IN (SELECT id FROM tmp); 
DROP TABLE tmp;


解决方法二:
在子查询外面再套一层。
DELETE FROM boss_t_mobile_version_partner WHERE id NOT IN (SELECT r.id FROM (SELECT MIN(t.id) AS id FROM `boss_t_mobile_version_partner` t
GROUP BY t.`partner_no`) r)
分享到:
评论

相关推荐

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

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

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

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

    MySQL处理重复数据的方法

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

    2023年,MySQL最新最详细的教程资源 详细讲解了MySQL的各种用法

    MySQL 删除数据表 MySQL 插入数据 MySQL 查询数据 MySQL WHERE 子句 MySQL UPDATE 更新 MySQL DELETE 语句 MySQL LIKE 子句 MySQL UNION MySQL 排序 MySQL 分组 MySQL 连接的使用 MySQL NULL 值处理 MySQL 正则...

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

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

    MySQL 处理重复数据

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

    删除数据表中重复记录

    删除重复记录 删除数据表中的重复记录,包括MySQL、SQL Server、Oracle等

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

    最近在做一个批量数据导入到MySQL数据库的功能,从批量导入就可以知道,这样的数据在插入数据库之前是不会进行重复判断的,因此只有在全部数据导入进去以后在执行一条语句进行删除,保证数据唯一性。 下面话不多说了...

    shell脚本操作mysql数据库删除重复的数据

    由于每次执行只删除重复数据的一条,需要重复执行,如果本轮没有数据被删就OK #!/bin/sh # delete all company's duplicate uid MYSQL_BIN_PATH=/data/mysql/server/mysql_3306/bin MYSQL_SOCK_PATH=/data/mysql/...

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

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

    删除MySQL重复数据的方法

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

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

    主要介绍了mysql查找删除重复数据并只保留一条实例详解的相关资料,需要的朋友可以参考下

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

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

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

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

    Mysql删除重复的数据 Mysql数据去重复

    主要介绍了Mysql删除重复的数据 Mysql数据去重复,需要的朋友可以参考下

    MySQL自增主键删除后重复问题

     设置一张MySQL表,表里有一个自增主键ID,往表里插入数据,假如插入数据之后表后一行的ID是100,我先删除这条ID为100的记录,然后重新启动服务器,按理说如果再往这个表里插入新的记录,新纪录的ID将为101,对吧...

Global site tag (gtag.js) - Google Analytics