有时候遇到一些错误的数据库,表中产生了一些重复的记录,如何删除多余记录就成了一件麻烦的事,今天看到一个巧妙的解决办法,利用了MySQL的扩展特性,很简单就完成了这项工作。

Why make this such a challenge?

Assuming your example:
CREATE TABLE bad_table2 (
id INT NOT NULL UNIQUE AUTO_INCREMENT,
name VARCHAR(20) NOT NULL
);

INSERT INTO bad_table2(id,name) VALUES
(1,'Things Fall Apart'),
(2,'Things Fall Apart'),
(3,'The Famished Road'),
(4,'Things Fall Apart'),
(5,'The Famished Road'),
(6,'Thirteen cents'),
(7,'Thirteen cents');

I can remove duplicates easily with the following line:
alter ignore table bad_table2 add unique index `unique_index` (name);

And then remove the added index.
alter table bad_table2 drop index `unique_index`;

Viola, dups gone.

这里有两个关键点,唯一索引和ignore关键字,MySQL对ignore的解释如下:

IGNORE是MySQL相对于标准SQL的扩展。如果在新表中有重复关键字,或者当STRICT模式启动后出现警告,则使用IGNORE控制ALTER TABLE的运行。如果没有指定IGNORE,当重复关键字错误发生时,复制操作被放弃,返回前一步骤。如果指定了IGNORE,则对于有重复关键字的行,只使用第一行,其它有冲突的行被删除。并且,对错误值进行修正,使之尽量接近正确值。

删除MySQL表的重复记录相关推荐

  1. 通过Mybatis获取mysql表中重复记录的方法

    输入条件:函数F返回的某表A的id列表 (id列表中的数据可能带有重复) 目标:依据该i列表 id 的顺序获取相应的记录列表. 方法:在mysql本身的语句中未发现有好的方法,即使用 in 语句也只能 ...

  2. mysql 排除另一表_MYSQL 两表 排除 重复记录

    MySQL之--查询重复记录.删除重复记录方法大全 - 冰河的专栏 - CSDN博客 https://blog.csdn.net/l1028386804/article/details/5173358 ...

  3. MYSQL 两表 排除 重复记录

    MySQL之--查询重复记录.删除重复记录方法大全 - 冰河的专栏 - CSDN博客 https://blog.csdn.net/l1028386804/article/details/5173358 ...

  4. Database之SQLSever:SQL命令实现查询之多表查询、嵌套查询、分页复杂查询,删除表内重复记录数据、连接(join、left join和right join简介及其区别)等案例之详细攻略

    Database之SQLSever:SQL命令实现查询之多表查询.嵌套查询.分页复杂查询,删除表内重复记录数据.连接(join.left join和right join简介及其区别)等案例之详细攻略 ...

  5. [转]删除表中重复记录

    我们可能会出现这种情况,某个表原来设计不周全,导致表里面的数据数据重复,那么,如何对重复的数据进行删除呢? 重复的数据可能有这样两种情况,第一种时表中只有某些字段一样,第二种是两行记录完全一样. 一. ...

  6. 删除数据库表中重复的记录

    删除数据库表中重复的记录 在处理数据的过程中,经常会遇到一个表中需要删除一些重复的记录.比如 在上表中,timeofday和cb_key_db_person两个字段,圈起来的记录是重复的,如果需要删除 ...

  7. sql删除表中重复记录_SQL从SQL表中删除重复行的不同方法

    sql删除表中重复记录 This article explains the process of performing SQL delete activity for duplicate rows f ...

  8. SQLServer删除表中重复记录

    sqlserver删除表中的重复数据 SqlServer删除表中重复记录 转载链接:https://www.bbsmax.com/A/1O5Ee12G57/ SqlServer删除表中重复记录 重复记 ...

  9. Oracle去除表中重复记录

    在一个表中,某一字段为重复字段.需要去除重复字段.同时将所有字段显示出来. SELECT * FROM (select a1,a2,a3, Row_number() OVER (PARTITION B ...

最新文章

  1. Scala的特质(Trait)介绍
  2. C语言:constkeyword、结构体
  3. sql server解析xml属性为表格_Mybatis中SqlSource解析流程详解
  4. python编译过程和解释过程的不同_Python编译/解释过程
  5. boost::signals2::slot相关的测试程序
  6. ssrf漏洞 php,DokuWiki fetch.php SSRF漏洞与tok安全验证绕过分析
  7. python enumerate函数_Python中enumerate函数用法详解
  8. iOS开发:对于AFNetworking HTTP转HTTPS请求证书问题
  9. 【电脑帮助】解决Wind10系统修改电脑默认用户名Administrator的问题
  10. bootstrapTable 取消 “正在加载中...”
  11. 由sock引起的感想
  12. oracle数据库查看建表语句,oracle 查看建表语句
  13. 斐讯K2破解任意校园网教程
  14. 记一次武汉科技大学ctf新手赛 wuctf2020
  15. 摆渡服务器装什么系统,昆明证券数据摆渡平台
  16. [报错] SyntaxError: Missing parentheses in call to ‘exec‘
  17. 计算机专业英语2013影印,计算机专业英语2013影印版重点翻译
  18. 资料链接 网络/系统/华为
  19. 用小程序云开发写一个多人记账小程序
  20. MyBatis框架实现(04)读取mapper配置

热门文章

  1. 【python】提取多个excel的工作簿,生成新的excel
  2. 腾讯大燕网“城市力量”年度盛典——致敬城市进取心
  3. 合成制药废水处理用DTRO膜 效果大不一样
  4. CapitalOne - Artifactory高可用集群的自动化部署实践
  5. 《中国商业银行数字化转型调查报告》发布,快商通声纹为银行赋能
  6. 一直以为自己擅长Python,直到见到这个神技
  7. 无线移动信道特性分析
  8. 球半足球比分,欧冠杯:卡拉巴克 - 波兹南莱赫
  9. 阅读micropyton源码-添加C扩展类模块(2)
  10. 无线电能传输 wpt 磁耦合谐振 过零检测 matlab simulink仿真 pwm MOSFET,过零检测模块