黑马程序员技术交流社区

标题: mysql [打印本页]

作者: 恩恩    时间: 2013-12-21 18:04
标题: mysql
删除一个表中重复的数据但是要求保留id值最小的一个。
比如说一个表中有两个字段:id和username,id是主键并且自动增长,比如现在有两条username为:rose的,要删除id大,保留id值最小的那一个记录。
如何写这个sql语句,请大神解答。
作者: 小骗子    时间: 2013-12-21 18:46
为什么问到这。。。。
delete from  (select max(ID) from tablename where username='rose')
作者: 恩恩    时间: 2013-12-22 13:42
谢谢你的回答,但是我有一个问题,就是你这个是删除最大的,但是如果有很多的数据呢,怎么保留最小的那一个。
希望你给我解答一下,感谢。
为什么问到这,什么意思啊? 呵呵
作者: 青菜白汤    时间: 2013-12-22 15:27
楼主看这样行不:
delete rose from table rose where exists(select 1 from table where username=rose.name and id<rose.id)






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2