您的位置:首页 > 数据库

常用sql语句之删除或查询单个字段重复数据的记录

2015-07-22 11:13 851 查看
例子 test表下的数据

id userid username userkey userpwd

1 6 fdas 231 344

2 6 4324 3432 23432

3 7 52 erwr fdsaf

select * from test

where userid in (select userid from test group by userid having

count(userid ) > 1) ;

查询结果为

6 fdas 231 344

6 4324 3432 23432

但是我要保留1条数据就好了,下面保留id最少的哪行数据

SET FOREIGN_KEY_CHECKS = 0;

SET SQL_SAFE_UPDATES=0;

create table mytmp as select min(id) as col1 from test group by userid;

delete from test where id not in (select col1 from mytmp);

drop table mytmp;

这样就删除其他多余的数据了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: