您的位置:首頁技術文章
文章詳情頁

mysql - 根據一個字段查找另一個字段重復的數據?并刪除相同的記錄,保留其中一個。

瀏覽:102日期:2022-06-15 18:48:55

問題描述

根據一個字段查找另一個字段重復的數據?并刪除相同的記錄,保留其中一個。

數據庫表:product_code_relate_titletext

字段:id,search_id,product_code,raw_title

需求:根據product_code重找raw_title重復的數據?(已實現)

需求:根據product_code重找raw_title重復的數據,并且刪除相同的數據,保留id最少的記錄即可。

(注意:刪除的是product_code下raw_title重復的數據)

select * from product_code_relate_titletext p where (select count(1) from product_code_relate_titletext where product_code=p.product_code and raw_title=p.raw_title)>1

mysql - 根據一個字段查找另一個字段重復的數據?并刪除相同的記錄,保留其中一個。

問題解答

回答1:

delete from product_code_relate_titletext where id not in (select * from (select min(id) from product_code_relate_titletext group by product_code,raw_title having count(*) > 1) as b);

回答2:

delete from product_code_relate_titletext where id in ( select a.id from (select * from product_code_relate_titletext where id not in (select min(id) from product_code_relate_titletext group by product_code,raw_title) ) a)回答3:

沒有您的數據,我這里給一段代碼供您參考:

刪除相同Name除ID最小的記錄外的其他記錄

-- ------------------------------ Table structure for t_team-- ----------------------------DROP TABLE IF EXISTS `t_team`;CREATE TABLE `t_team` ( `id` int(11) NOT NULL, `user_name` varchar(50) DEFAULT NULL, PRIMARY KEY (`ID`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ------------------------------ Records of t_team-- ----------------------------INSERT INTO `t_team` VALUES (’1’, ’A’);INSERT INTO `t_team` VALUES (’2’, ’B’);INSERT INTO `t_team` VALUES (’3’, ’B’);INSERT INTO `t_team` VALUES (’4’, ’A’);INSERT INTO `t_team` VALUES (’5’, ’C’);INSERT INTO `t_team` VALUES (’6’, ’C’);-- ------------------------------ 刪除NAME重復的記錄,保留ID最小的記錄-- ----------------------------DELETE FROM t_team WHERE id NOT IN ( SELECT min_id FROM ( SELECT MIN(id) AS min_id FROM t_team GROUP BY user_name ) B )

国产综合久久一区二区三区