MySQLは重複データを削除し、idの最小の1つだけを保持する
4919 ワード
1 SQLスクリプトは次のとおりです.
2表中のデータ
id
name
1
張三
2
李四
3
張三
3重複データの削除
3.1 groupbyを使用する第1の方法
3.2接続の使用
CREATE TABLE `student` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4;
INSERT INTO `student` VALUES ('1', ' ');
INSERT INTO `student` VALUES ('2', ' ');
INSERT INTO `student` VALUES ('3', ' ');
2表中のデータ
id
name
1
張三
2
李四
3
張三
3重複データの削除
3.1 groupbyを使用する第1の方法
DELETE FROM student
WHERE id NOT IN (
SELECT id
FROM
(
SELECT
MIN(id) id
FROM
student
GROUP BY
`name`
) cc
);
3.2接続の使用
DELETE a
FROM
student a,
student b
WHERE
a.id > b.id
AND a.`name` = b.`name`;