在网上看过一些解决方法 我在此给出的方法适用于无唯一ID的情形 表:TB_MACVideoAndPicture 字段只有2个:mac,content mac作为ID,正常情况下mac数据是唯一的,由于操作失误导致数据插入多次,导致出现多个mac,content重复数据,现在只保留一条,删除多余的 大体思想是给重复数据一个自增ID,过滤出每组里面最小ID,删除原数据中所有重复数据再将最小ID插入 --查询出所有重复数据,并给定递增id , ) AS id , mac , content INTO
BEGIN DELETE TB FROM TableName TB WHERE TB.ID IN (SELECT MIN(ID) FROM TableName TB2 GROUP BY TB2.Column1,TB2.Column2,...TB2.ColumnN ) ); SET @Count = @@ROWCOUNT; END 这里使用了循环删除,并不是最优的方法,欢迎园友不吝批评指正. 其实还有一种方法是先查询重复的数据,然后在重复数据中保留一条. 下面用例子说明. 例如表City有如下的数