1句SQL实现MYSQL删除表内重复记录

来源:百度知道 编辑:UC知道 时间:2024/05/12 18:29:41
例如表USE 有字段 ID FN LN 3个字段,有这样的值:1,m,n;2,x,y;3,m,n;显然有重复的记录,用一句SQL删除它(不是删除上述例子,而是通用的专门删除重复记录的SQL语句,不要给我说:delete from use where id=3这样的针对上面的示例的语句)
原题目: 1句SQL实现把表student(有字段ID,NAME,AGE,SEX)所有的记录全部追加到该表的后面。
然后再用1句SQL讲该表的重复记录删除。
注意:是mysql数据库;两个问题只能有2个SQL语句,多1句不行;下面的回答都不符合。

根据楼主提供的信息,ID应该上自增列.
1.insert student select Name,AGE,SEX from student.
2.delete A from student A,student B
where A.name = B.name
and A.Age = B.age
and A.sex = B.sex
and A.ID > B.ID

create table 临时表 as
select a.字段1,a.字段2,MAX(a.ROWID) dataid from 正式表 a GROUP BY a.字段1,a.字段2;
delete from 表名 a
where a.rowid !=
(
select b.dataid from 临时表 b
where a.字段1 = b.字段1 and
a.字段2 = b.字段2
);
commit;

你没有说明白 表student(有字段ID,NAME,AGE,SEX)和 表USE(有字段 ID FN LN)哪个字段对应哪个

重复记录删除:
delete from use1 where id not in(select max(id) from use1 group by fn,ln )

呵呵,楼主的大脑是猪脑,鉴定完毕。

我建议你把下边的补充给删掉,要不丢人呢。

delete from use where id not in (select id,count(distinct fn,ln) from use group by fn,ln)