用户名:
密 码: 记住
您当前的位置:首页 > 网络编程 > mysql教程

mysql删除字段重复的数据sql语句

时间:2015-01-23  来源:西部数据  作者:西部数据

在mysql中删除重复记录我们有多种方法,下面我介绍利用临时表与ALTER IGNORE TABLE命令来实现,希望些方法对各位会有所帮助.

mysql删除字段重复的数据,经过搜索刚开始是这样做的:

  1. delete from v_togo 
  2. where tel in (select tel from v_togo group by tel having count(tel) > 1) 
  3. and togoid not in (select min(togoid) from v_togo group by tel having count(tel )>1) 

结果mysql报错:you can't specify target table 'v_togo' for update in from clause

然后我是这样解决的,分三个步骤:

1、create table tmp as select max(togoid) as toid from v_togo group by tel;先把要处理的字段存储到临时表

2、delete from v_togo where togoid not in (select toid from tmp);根据临时表进行筛选

3、drop table tmp;删除临时表

例,我是想做一个去重复操作,比如,如下表:

  1. id       title                  
  2.  
  3. 1           张三                 
  4.  
  5. 2           李四                  
  6.  
  7. 3           张三                  
  8.  
  9. 4           王五                  
  10.  
  11. 5           李四 

最终结果是:

  1. id       title                  
  2.  
  3. 1         张三                  
  4.  
  5. 2         李四                  
  6.  
  7. 4         王五 

替换方案,代码如下:

  1. create table tmp as select min(id) as col1 from blur_article group by title;delete from blur_article where id not in (select col1 from tmp); drop table tmp;  --phpfensi.com 

已经测试,尽请使用这样就ok了,

或者这样操作,代码如下:

ALTER IGNORE TABLE `表名` ADD UNIQUE (`唯一索引字段名`);

删除重复的数据,只保留一条.

来顶一下
返回首页
返回首页
推荐资讯
WiFi太不安全:7岁女孩11分钟内入侵公共网络 WiFi太不安全:7岁女孩11分钟内入侵近期刚刚发布研究说WiFi网络能获得人们手机里多少私人信息,
不服跑个分?人工智能也出现“刷分”乱象 不服跑个分?人工智能也出现“刷分2014年,人工智能领域突然爆发,成为了科研和科技创业的热门
相关文章
    无相关信息
栏目更新
栏目热门