MYSQL删除重复数据的简单方法 |
本文标签:MYSQL,重复数据 复制代码 代码如下: CREATETABLE`users`( `id`int(10)NOTNULLAUTO_INCREMENT, `name`char(50)NOTNULL, PRIMARYKEY(`id`) ) 复制代码 代码如下: deletefromuserswhereidin(selectmin(id)fromusersgroupbynamehavingcount(name)>1); 结果报错:1093youcantspecifytargettable.... 原因是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; |