MySQL 大批量插入,如何過濾掉重復數(shù)據(jù)?
往期熱門文章: 1、Spring官方為什么建議構造器注入? 2、還在用 Random生成隨機數(shù)?試試 ThreadLocalRandom,超好用! 3、這些年 Java8 的 Optional 你用對了嗎? 4、當 Docker 遇上 IDEA ,生產(chǎn)力徹底炸裂了 5、如何把Spring Boot的Jar包做成exe?超詳細教程來了! 來源:telami.cn/2019/mysql-removes-duplicate -data-and-keeping-only-one/
CREATE TABLE `animal` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
INSERT INTO `pilipa_dds`.`student` (`id`, `name`, `age`) VALUES ('1', 'cat', '12');
INSERT INTO `pilipa_dds`.`student` (`id`, `name`, `age`) VALUES ('2', 'dog', '13');
INSERT INTO `pilipa_dds`.`student` (`id`, `name`, `age`) VALUES ('3', 'camel', '25');
INSERT INTO `pilipa_dds`.`student` (`id`, `name`, `age`) VALUES ('4', 'cat', '32');
INSERT INTO `pilipa_dds`.`student` (`id`, `name`, `age`) VALUES ('5', 'dog', '42');
SELECT name,count( 1 )
FROM
student
GROUP BY
NAME
HAVING
count( 1 ) > 1;
name count(1) cat 2 dog 2
Select * From 表 Where 重復字段 In (Select 重復字段 From 表 Group By 重復字段 Having Count(1)>1)
刪除全部重復數(shù)據(jù),一條不留
DELETE
FROM
student
WHERE
NAME IN (
SELECT NAME
FROM
student
GROUP BY
NAME
HAVING
count( 1 ) > 1)
1093 - You can't specify target table 'student' for update in FROM clause, Time: 0.016000s
DELETE
FROM
student
WHERE
NAME IN (
SELECT
t.NAME
FROM
( SELECT NAME FROM student GROUP BY NAME HAVING count( 1 ) > 1 ) t)
刪除表中刪除重復數(shù)據(jù),僅保留一條
SELECT
*
FROM
student
WHERE
id NOT IN (
SELECT
t.id
FROM
( SELECT MIN( id ) AS id FROM student GROUP BY `name` ) t
)
開始刪除重復數(shù)據(jù),僅留一條
DELETE
FROM
student
WHERE
id NOT IN (
SELECT
t.id
FROM
( SELECT MIN( id ) AS id FROM student GROUP BY `name` ) t
)
最近熱文閱讀:
1、Spring官方為什么建議構造器注入? 2、還在用 Random生成隨機數(shù)?試試 ThreadLocalRandom,超好用! 3、這些年 Java8 的 Optional 你用對了嗎? 4、當 Docker 遇上 IDEA ,生產(chǎn)力徹底炸裂了 5、如何把Spring Boot的Jar包做成exe?超詳細教程來了! 6、徹底搞懂 Nginx 的五大應用場景 7、推薦60個相見恨晚的神器工具 8、為什么有些大公司技術弱爆了? 9、這 40 道 Redis 面試題讓你不再慌(附答案) 10、優(yōu)秀的代碼都是如何分層的? 關注公眾號,你想要的Java都在這里
評論
圖片
表情
