`
jimmy9495
  • 浏览: 301198 次
  • 性别: 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中如何处理重复数据(Duplicate)?

    在使用上述方法处理重复数据时,需要在表中定义相应的唯一键(主键或唯一索引),以便 MySQL 能够判断冲突并执行相应的操作。否则,MySQL 将无法判断冲突,导致数据插入失败。 四、应用场景 处理重复数据的方法在...

    MySQL删除重复记录

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

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

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

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

    4. **删除重复数据**:如果你希望彻底删除重复数据,只保留一条,可以使用`DISTINCT`关键字创建一个新的表,或者使用`DELETE`语句结合子查询。但请注意,删除操作应谨慎进行,以免丢失重要信息。例如: ```sql ...

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

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

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

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

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

    本文主要探讨如何查询并删除MySQL中的重复数据,同时保留每个重复组中ID最小的一条记录。 首先,我们需要找到表中的重复数据。假设我们有一个名为`brand`的表,其中包含品牌名称`brandName`和其他字段,而我们想要...

    删除数据表中重复记录

    通过上述方法,可以在MySQL、SQL Server、Oracle等多种数据库管理系统中有效地删除数据表中的重复记录。需要注意的是,在实际操作前最好对数据进行备份,以防误删重要的数据。此外,根据数据库的不同版本和特性,...

    mysql 数据表中查找重复记录

    在MySQL数据库管理中,有时我们需要找出数据表中的重复记录,以确保数据的准确性和一致性。在给定的标题和描述中,我们关注的核心知识点是如何使用SQL查询语句来定位并检索这些重复的数据。这里,我们将深入探讨这个...

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

    在MySQL中,删除重复数据是一项常见的数据库维护任务。在标题和描述中提到的问题是尝试使用一个SQL查询来删除具有相同值的记录,但遇到了错误。下面将详细解释这个问题,并提供几种有效的方法来处理MySQL中删除重复...

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

    本文将详细介绍如何在MySQL中查找并删除重复数据。 首先,我们需要识别哪些数据是重复的。假设我们有一个名为`my_table`的表,其中包含`column1`和`column2`等字段,可能存在重复数据。使用`GROUP BY`和`HAVING`...

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

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

    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数据表中的重复数据。 首先,为了防止数据表出现重复数据,我们可以利用 PRIMARY KEY(主键) 或 UNIQUE(唯一) 索引来实现。主键是表中的一个或多个字段,其值在整个表中是...

    经常面试到的SQL题(查询重复数据和清除重复数据)

    清除重复数据则需要更谨慎,因为这可能会永久删除数据。在MySQL中,我们可以使用`DISTINCT`关键字结合`INSERT INTO`和`SELECT`语句来创建一个没有重复的新表,然后可以决定是否删除原始表: ```sql CREATE TABLE ...

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

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

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

    在MySQL数据库管理中,删除重复数据是一个常见的需求,特别是在数据清洗和数据分析时。传统的删除重复数据的方法,如使用`NOT IN`或`DISTINCT`,可能会导致效率低下,特别是当处理大量数据时。本文将介绍一种高效的...

    Mysql临时表和派生表

    MySQL中的临时表是一种特殊的表类型,主要用于存储临时数据或中间结果集,适用于那些需要多次查询同一结果集的场景。根据存储位置的不同,可以将临时表分为两类:内存临时表和外存临时表。 - **内存临时表(in-...

    删除MySQL重复数据的方法

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

Global site tag (gtag.js) - Google Analytics