SQL去除重复数据,无主键 | 您所在的位置:网站首页 › sql删除重复值只保留一个没有ID › SQL去除重复数据,无主键 |
一个没留神,数据库表table1被同事改的代码插入了重复数据,是很规律的每一条数据重复出现两次,查重SQL如下: SELECT column1, count(*) num FROM table1 GROUP BY column1 HAVING num > 1本来打算参照其他去重的办法直接套用SQL语句: DELETE FROM table1 WHERE id NOT IN ( SELECT a.id FROM ( SELECT MAX( id ) AS id FROM table1 GROUP BY column1 )a )奈何写了两句才发现,这个表,它没主键!!想了一下,没有主键且所有字段都没有要求唯一的情况下,没有任何办法可以区分两条重复数据,老老实实用中间表吧,复制当前表结构,建立table1_copy,然后把所有非重复数据拷过去: INSERT INTO table1_copy ( SELECT DISTINCT column1, column2, ..., columnX FROM table1 )鉴于我遇到的数据情况很简单,DISTINCT column1就可以完美匹配当前需求,数据拷过去之后给当前table1重命名改为备份表,table1_copy重命名为table1即可。 |
CopyRight 2018-2019 实验室设备网 版权所有 |