SQL去除重复数据,无主键 您所在的位置:网站首页 sql删除重复值只保留一个没有ID SQL去除重复数据,无主键

SQL去除重复数据,无主键

2024-07-13 14:33| 来源: 网络整理| 查看: 265

一个没留神,数据库表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 实验室设备网 版权所有