SQL数据库中查询重复数据,并删除其中的一条

您所在的位置:网站首页 sql语句去掉重复数据 SQL数据库中查询重复数据,并删除其中的一条

SQL数据库中查询重复数据,并删除其中的一条

2023-08-07 14:43| 来源: 网络整理| 查看: 265

只能删除重复次数为2的记录,多条重复记录时候,需要多次执行 delete from 表名 where id in (select a.id from (select 字段1,字段2,min(id) id from 表名 group by 字段1, 字段2 having count(*)>1) a) 其中: 语句A:select 字段1,字段2,min(id) id from 表名 group by 字段1, 字段2 having count(*)>1 为查询出重复数据。字段1,2都相同才会认为是重复数据,显示的是重复数据中id最小的一条,可以根据需要替换为max(id)。 语句2:(select a.id from: (语句A) a) 不重新再查询一次是没有办法删除的,在datagrip中执行的时候报错,查了一下说是必须再重新查一次才可以删除。最后的a为语句A查询结果表的别名。 语句3:delete from 表名 where id in 语句2 删除语句。

还有个插曲,在执行语句的时候,由于SQL SERVER的默认保护策略,没办法执行删除,需要解除输入的安全模式,用一下语句。 show variables like ‘sql_safe%’;(查询安全模式是否开启,是ON就表明开启了,需要手动关闭) set sql_safe_updates=off; 操作完毕就可以执行删除语句了。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3