delete from zqzrdp

where tel  in (select min(dpxx_id) from  zqzrdp  group by tel  having count(tel)>1);

运行,报错

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMTU5ODUyOQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

异常意为:你不能指定目标表的更新在FROM子句。傻了。MySQL 这样写,不行,让人郁闷。

难倒仅仅能分步操作,蛋疼

下面是网友写的。相同是坑爹的代码,我机器上执行不了。

1. 查询须要删除的记录,会保留一条记录。

 代码例如以下 复制代码

select a.id,a.subject,a.RECEIVER from test1 a left join (select c.subject,c.RECEIVER ,max(c.id) as  bid from test1 c where status=0 GROUP BY RECEIVER,SUBJECT having count(1) >1) b on a.id< b.bid where  a.subject=b.subject and a.RECEIVER = b.RECEIVER and a.id
< b.bid

2. 删除反复记录,仅仅保留一条记录。注意。subject,RECEIVER 要索引。否则会非常慢的。

 代码例如以下 复制代码

delete a from test1 a, (select c.subject,c.RECEIVER ,max(c.id) as  bid from test1 c where status=0 GROUP BY RECEIVER,SUBJECT having count(1) >1) b where a.subject=b.subject and a.RECEIVER = b.RECEIVER and a.id < b.bid;

3. 查找表中多余的反复记录。反复记录是依据单个字段(peopleId)来推断

 代码例如以下 复制代码

select * from people

where peopleId in (select  peopleId  from  people  group  by  peopleId  having  count(peopleId) > 1)

4. 删除表中多余的反复记录,反复记录是依据单个字段(peopleId)来推断。仅仅留有rowid最小的记录

 代码例如以下 复制代码

delete from people 

where peopleId  in (select  peopleId  from people  group  by  peopleId   having  count(peopleId) > 1)

and rowid not in (select min(rowid) from  people  group by peopleId  having count(peopleId )>1)

5.删除表中多余的反复记录(多个字段)。仅仅留有rowid最小的记录

 代码例如以下 复制代码
delete from vitae a

where (a.peopleId,a.seq) in  (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)

and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)

MySQL 删除数据库中反复数据(以部分数据为准)的更多相关文章

  1. MySQL 删除数据库中重复数据方法

    1. 查询需要删除的记录,会保留一条记录. select a.id,a.subject,a.RECEIVER from test1 a left join (select c.subject,c.RE ...

  2. mysql 删除数据库中所有的表中的数据,只删database下面所有的表。

    select concat('drop table ',table_name,';') from TABLES where table_schema='数据库名称'; select concat('t ...

  3. mysql记录数据库中重复的字段的数据

    SELECT    SUM(co)FROM    (        SELECT            telephone,            count(telephone) AS co     ...

  4. PHP MySQL Delete删除数据库中的数据

    PHP MySQL Delete DELETE 语句用于从数据库表中删除行. 删除数据库中的数据 DELETE FROM 语句用于从数据库表中删除记录. 语法 DELETE FROM table_na ...

  5. Java删除数据库中的数据

    1:删除数据库中数据表中的数据同样也是一个非常用的技术,使用executeUpdate()方法执行用来做删除SQL的语句可以删除数据库表中的数据 2:本案例使用Statement接口中的execute ...

  6. laravel如何从mysql数据库中随机抽取n条数据

    laravel如何从mysql数据库中随机抽取n条数据 一.总结 一句话总结: inRandomOrder():$userQuestions=UserQuestion::where($map)-> ...

  7. MySQL 删除数据库

    MySQL 删除数据库 使用 mysqladmin 删除数据库 使用普通用户登陆mysql服务器,你可能需要特定的权限来创建或者删除 MySQL 数据库. 所以我们这边使用root用户登录,root用 ...

  8. 涂抹mysql笔记-数据库中的权限体系

    涂抹mysql笔记-数据库中的权限体系<>能不能连接,主机名是否匹配.登陆使用的用户名和密码是否正确.mysql验证用户需要检查3项值:用户名.密码和主机来源(user.password. ...

  9. 六、MySQL 删除数据库

    MySQL 删除数据库 使用普通用户登陆 MySQL 服务器,你可能需要特定的权限来创建或者删除 MySQL 数据库,所以我们这边使用 root 用户登录,root 用户拥有最高权限. 在删除数据库过 ...

随机推荐

  1. 关于Linux CentOS 7 时区时间修改问题

    原文:http://blog.csdn.net/yin138/article/details/52765089 今天遇到时区的问题,操作系统为CentOS 7 1. 首先进入终端,使用su root ...

  2. Halcon算子翻译——assign

    名称 assign-为控制变量分配一个新的值 用法 assign( : : Input : Result) 描述 为控制变量分配一个新的值. 在全文编辑器中,只需用:=就可以进行赋值,例如:  u : ...

  3. java_IO流读取本地文件

    package com.ht.util; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoun ...

  4. C#调用DLL文件时参数对应表

    Wtypes.h中的非托管类型  非托管 C语言类型    托管类名               说明HANDLE                  void*               Syste ...

  5. 《天书夜读:从汇编语言到windows内核编程》七 内核字符串与内存

    1)驱动中的字符串使用如下结构: typedef struct _UNICODE_STRING{ USHORT Length; //字符串的长度(字节数) USHORT MaximumLength; ...

  6. Java8 ArrayList源码分析

    java.util.ArrayList是最常用的工具类之一, 它是一个线程不安全的动态数组. 本文将对JDK 1.8.0中ArrayList实现源码进行简要分析. ArrayList底层采用Objec ...

  7. BOM物料清单在输入用料计划时快捷选择物料没有带出单位

    问题: 在新增BOM物料清单时,输入用料计划,快捷选择物料没有带出单位,但是从清单查找里面选择物料,是可以自动带出单位的. 原因分析查找: 1.这是个自定义单据,到tools工具上查看相关设置,看清单 ...

  8. JDK8新特性一览

    转载自:http://blog.csdn.net/qiubabin/article/details/70256683 官方新特性说明地址 Jdk8新特性.png 下面对几个常用的特性做下重点说明. 一 ...

  9. 安卓自定义控件(一)Canvas、Paint、Shader、Xfermode

    关于自定义控件,之前就写过一篇自定义控件,上图下字的Button,图片任意指定大小,但是使用效果还是让人感觉不幸福,这次索性彻彻底底地对自定义控件做一次彻彻底底的总结. 我会花4篇博客来介绍自定义控件 ...

  10. 2735:八进制到十进制-poj

    总时间限制:  1000ms 内存限制:  65536kB 描述 把一个八进制正整数转化成十进制. 输入 一行,仅含一个八进制表示的正整数a,a的十进制表示的范围是(0, 65536). 输出 一行, ...