首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除指定列中有重复/重复数据的行

删除指定列中有重复/重复数据的行
EN

Stack Overflow用户
提问于 2016-04-18 04:55:59
回答 1查看 21关注 0票数 1

我需要删除重复的记录(仅当cod1和模型重复时),并且只保存其中之一。

代码语言:javascript
复制
ID Cod1 Model
1   332  mdl1
2   332  mdl1
3   332  mdl2
4   450  mdl2
5   450  mdl2

输出必须是

代码语言:javascript
复制
ID  Cod1  Model
1    332  mdl1
3    332  mdl2
4    450  mdl2

真的谢谢你!

EN

回答 1

Stack Overflow用户

发布于 2016-04-18 05:05:41

试试这个吧。将出现的Table1替换为实际的表名。

代码语言:javascript
复制
DELETE FROM Table1 WHERE ID IN
(SELECT * FROM 
   (SELECT T2.Id
    FROM Table1 T1
    INNER JOIN Table1 T2 
    ON T1.Cod1 = T2.Cod1 AND T1.Model = T2.Model
    WHERE T2.ID > T1.ID
    )T
);

sqlfiddle

在最里面的查询中,当T2和模型匹配,并且T2.Id将是较大的id时,Cod1将找到匹配的Cod1记录。因此,它返回要删除的行的it。但是Mysql不允许您从来自同一个表的查询中删除,所以我们必须将其包装在另一个SELECT语句中,以欺骗Mysql允许您这样做。就是这样。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36682124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档