A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 恩恩 中级黑马   /  2013-12-21 18:04  /  966 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

删除一个表中重复的数据但是要求保留id值最小的一个。
比如说一个表中有两个字段:id和username,id是主键并且自动增长,比如现在有两条username为:rose的,要删除id大,保留id值最小的那一个记录。
如何写这个sql语句,请大神解答。

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

4 个回复

倒序浏览
为什么问到这。。。。
delete from  (select max(ID) from tablename where username='rose')
回复 使用道具 举报
谢谢你的回答,但是我有一个问题,就是你这个是删除最大的,但是如果有很多的数据呢,怎么保留最小的那一个。
希望你给我解答一下,感谢。
为什么问到这,什么意思啊? 呵呵
回复 使用道具 举报
楼主看这样行不:
delete rose from table rose where exists(select 1 from table where username=rose.name and id<rose.id)

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马