标题: 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)