MySQL有一张表,**没有主键**,里面有十条**一模一样**的数据。
题目是只使用**一条sql语句**来删除多余的九条数据,只保留一条。
请教各位大佬。
给你个思路:
可以将查询不重复的数据存到临时表里,删除掉原表,然后将临时表的数据存到原表里
Select distinct * into Tmp from table_a
Drop table table_a
Select * into table_a from Tmp
Drop table Tmp
如果类似这样的数据很多,你可以按楼上的,先去重的数据存到临时表,删掉原表,再创建回来。
第一种、
DELETE TOP (9) FROM 表名
第二种、
delete result from (select ROW_NUMBER () over(partition by 字段名 order by 字段名 )r, * from 表名 t ) result where result.r!=1