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

 更新时间:2013年11月19日 14:47:24   作者:  
业务中遇到要从表里删除重复数据的需求,使用了下面的方法,执行成功,大家可以参考使用

复制代码 代码如下:

CREATETABLE`users`(
`id`int(10)NOTNULLAUTO_INCREMENT,
`name`char(50)NOTNULL,
PRIMARYKEY(`id`)
)

复制代码 代码如下:

deletefromuserswhereidin(selectmin(id)fromusersgroupbynamehavingcount(name)>1);

结果报错:1093youcan'tspecifytargettable....

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

复制代码 代码如下:

deletefromuserswhereidin(select*from(selectmin(id)fromusersgroupbynamehavingcount(name)>1));

还要注意deletefromusers这里不能用别名

其他方法。

复制代码 代码如下:

deleteusersasafromusersasa,(selectmin(id)id,namefromusersgroupbynamehavingcount(name)>1
)asbwherea.name=b.nameanda.id<>b.id;


建立临时表:

复制代码 代码如下:

createtabletmp_usersselectmin(`id`),`name`fromusersgroupbyname;

truncatetableusers;
insertintousersselect*fromtmp_users;
droptabletmp_users;

相关文章

  • MySQL UPDATE 语句一个“经典”的坑

    MySQL UPDATE 语句一个“经典”的坑

    这篇文章主要介绍了MySQL UPDATE 语句一个“经典”的坑,一个非常有意思的话题,感兴趣的小伙伴可以参考下面文章的具体内容哦
    2021-10-10
  • CentOS7卸载MySQL5.7的方法步骤

    CentOS7卸载MySQL5.7的方法步骤

    这篇文章主要介绍了CentOS7卸载MySQL5.7的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • MySQL占用内存过大解决方案图文详解

    MySQL占用内存过大解决方案图文详解

    最近无意中在任务管理器发现MySQL内存占用达到700+M,所以下面这篇文章主要给大家介绍了关于MySQL占用内存过大的完美解决方案,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-09-09
  • MySQL 去重实例操作详解

    MySQL 去重实例操作详解

    这篇文章主要介绍了MySQL 去重实例操作详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
    2022-07-07
  • mysql prompt的用法详解

    mysql prompt的用法详解

    本篇文章是对mysql中prompt的用法进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • MySql官方手册学习笔记2 MySql的模糊查询和正则表达式

    MySql官方手册学习笔记2 MySql的模糊查询和正则表达式

    MySQL提供标准的SQL模式匹配,以及扩展正则表达式模式匹配的格式
    2012-10-10
  • Mysql如何查询某条记录在分页的第几页详析

    Mysql如何查询某条记录在分页的第几页详析

    查询是我们日常工作中经常会遇到的一个功能,下面这篇文章主要给大家介绍了关于Mysql如何查询某条记录在分页的第几页的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2018-11-11
  • MySQL创建、修改和删除表操作指南

    MySQL创建、修改和删除表操作指南

    MySQL是最常用的数据库,在数据库操作中,基本都是增删改查操作,简称CRUD,下面这篇文章主要给大家介绍了关于MySQL创建、修改和删除表的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • 详细深入聊一聊Mysql中的int(1)和int(11)

    详细深入聊一聊Mysql中的int(1)和int(11)

    mysql数据库作为当前常用的关系型数据库,肯定会遇到设计表的需求,下面对设计表时int类型的设置进行分析,下面这篇文章主要给大家介绍了关于Mysql中int(1)和int(11)的相关资料,需要的朋友可以参考下
    2022-08-08
  • MySQL创建唯一索引时报错Duplicate entry * for key问题

    MySQL创建唯一索引时报错Duplicate entry * for key问题

    这篇文章主要介绍了MySQL创建唯一索引时报错Duplicate entry * for key问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09

最新评论