欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql 將id一樣的合并

錢瀠龍2年前15瀏覽0評論

MySQL是一種開源的關系型數據庫管理系統,廣泛應用于Web應用程序的開發和管理。它提供了一個簡單易用的SQL語言,使得對數據庫中數據的操作變得高效和便捷。在MySQL中,有時候需要將數據庫中的重復記錄合并,并保留其中一條數據作為標準的記錄。下面介紹一種實現這個功能的方法。

CREATE TABLE `duplicate` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

以上代碼創建了一個名為duplicate的表,該表中包含了3個字段,分別是id、name和age。其中,id字段是主鍵,用于標識每一條記錄,并且采用了自動增量的方式進行編號。

INSERT INTO `duplicate` (`id`, `name`, `age`) VALUES
(1, 'Tom', 20),
(2, 'Lucy', 18),
(3, 'Tom', 20),
(4, 'Jack', 22),
(5, 'Lucy', 19),
(6, 'Tom', 21),
(7, 'Lucy', 18);

以上代碼向duplicate表中插入了7條記錄,其中出現了重復的記錄,如id為1和3、2和7的記錄,它們都表示同一個人。

SELECT MAX(id) AS max_id, name, age
FROM `duplicate`
GROUP BY name, age
HAVING COUNT(*) >1;

以上代碼查詢了重復記錄中的每一個人(即name和age相同的記錄),然后用MAX函數將每一個人的所有記錄的ID合并在一起,取其中的最大值作為標準記錄的ID。

DELETE FROM `duplicate`
WHERE id NOT IN (
SELECT max_id
FROM (
SELECT MAX(id) AS max_id, name, age
FROM `duplicate`
GROUP BY name, age
HAVING COUNT(*) >1
) AS t
);

以上代碼根據查詢結果中的標準記錄ID,刪除與其不匹配的其他記錄。執行完以上SQL語句后,表中的記錄就被成功地合并了。