日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

Mysql中如何刪除表重復數據

瀏覽:158日期:2023-06-08 19:37:37
目錄Mysql刪除表重復數據表里存在唯一主鍵沒有主鍵時刪除重復數據Mysql刪除表中重復數據并保留一條準備一張表 用的是mysql8 大家自行更改創建表并添加四條相同的數據總結Mysql刪除表重復數據表里存在唯一主鍵

根據多個字段刪除重復數據,只保留一條數據

DELETEFROMtable_name WHERE(字段1, 字段2) IN (SELECTt.字段1,t.字段2FROM(SELECT字段1,字段2FROMtable_name GROUP BY字段1,字段2HAVINGcount(1) > 1) t)AND id NOT IN (SELECTdt.idFROM(SELECTmin(id) AS idFROMtable_name GROUP BY字段1,字段2HAVINGcount(1) > 1) dt)沒有主鍵時刪除重復數據

1、創建新表

①創建一個新表與目標表結構字段保持一致

create table new_table_temp

②將過濾查詢的統計的數據寫入到新表

insert into new_table_temp

③將舊表table_name 刪除

delete from table_name?

④將創建的新表名稱修改為舊表名稱

2、添加字段

①表結構添加一個自增且唯一字段

②按照存在唯一主鍵進行刪除重復數據

③刪除添加的自增字段

Mysql刪除表中重復數據并保留一條

最近有個需求,給角色添加菜單權限,這是一個role_menu 表。

里面存放的是角色id和菜單id,是批量給一種類型角色添加,但有可能角色人為添加過,因為數據量還是比較大的,如果先查詢這個有沒有添加過再添加會很耗時,而統一不管有沒有添加過一并添加則很快,這就需要后續給重復數據給刪除掉,于是有了今天的分享。

我這里只做一個列子,工作代碼安全底線大家謹記哈。

準備一張表 用的是mysql8 大家自行更改/* Navicat Premium Data Transfer Source Server : localmysql Source Server Type : MySQL Source Server Version : 80030 Source Host : localhost:3306 Source Schema : nie_db Target Server Type : MySQL Target Server Version : 80030 File Encoding : 65001 Date: 17/08/2022 10:49:41*/SET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS = 0;-- ------------------------------ Table structure for message-- ----------------------------DROP TABLE IF EXISTS `message`;CREATE TABLE `message` ( `id` bigint(0) NOT NULL, `message_title` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, `message_context` varchar(200) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, `send_peo` bigint(0) NULL DEFAULT NULL, `receive_peo` bigint(0) NULL DEFAULT NULL, `scope` int(0) NULL DEFAULT 0, `del_flag` tinyint(0) NULL DEFAULT 0, `create_time` datetime(0) NULL DEFAULT NULL, `creator` tinyint(0) NULL DEFAULT NULL, `update_time` datetime(0) NULL DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci ROW_FORMAT = Dynamic;-- ------------------------------ Records of message-- ----------------------------INSERT INTO `message` VALUES (1, '測試消息', '消息內容', 23, 1231, 0, 0, '2022-08-17 10:39:51', 3, '2022-08-17 10:40:00');INSERT INTO `message` VALUES (2, '測試消息', '消息內容', 23, 1231, 0, 0, '2022-08-17 10:39:51', 3, '2022-08-17 10:40:00');INSERT INTO `message` VALUES (3, '測試消息', '消息內容', 23, 1231, 0, 0, '2022-08-17 10:39:51', 3, '2022-08-17 10:40:00');INSERT INTO `message` VALUES (4, '測試消息', '消息內容', 23, 1231, 0, 0, '2022-08-17 10:39:51', 3, '2022-08-17 10:40:00');SET FOREIGN_KEY_CHECKS = 1;創建表并添加四條相同的數據

接下來是我們這次的重頭,我封裝了一個存儲過程,具體的邏輯都在注釋里了,你也可以分析然后單獨拿出來分批次執行sql

CREATE DEFINER=`root`@`localhost` PROCEDURE `remove`()BEGINDECLARE count_all INT DEFAULT 0;DECLARE count_copy INT DEFAULT 1;-- 創建一個臨時復制表,并將目標表數據復制進來DROP TABLE if exists message_01 ;create TEMPORARY TABLE message_01 (SELECT * FROM message);-- 查詢去重后實際條數 并賦值給我們的變量 去重根據實際需求更改GROUP BY 后面條件SELECT COUNT(1) into count_all from (select COUNT(1) FROM message WHERE del_flag = 0 GROUP BY message_title,message_context) t ;/*刪除復制表的重復數據并保留一條 保留哪條數據可以自己根據條件調節,比如最小id等等,就是條件問題 還有就是去重根據實際需求更改GROUP BY 后面條件這里如果使用了邏輯刪除,有需要保留數據的可以改成修改邏輯刪除字段*/DELETE FROM message_01 WHERE ID NOT IN (select t.id FROM (select MAX(id) as id FROM message WHERE del_flag = 0 GROUP BY message_title,message_context) t);-- 再次不去重查詢 如結果和查詢結果一樣則操作正確且完整select COUNT(1) INTO count_copy FROM message_01 WHERE del_flag = 0 ;-- 進行最后兩次查詢結果比對IF count_all = count_copy THENTRUNCATE message;INSERT INTO message (SELECT * FROM message_01);SELECT 'success';ELSE SELECT '改造失敗',count_all AS '原表條數',count_copy AS '復制表刪除重復數據后統計的條數';END IF;END

另外創建存儲過程,就是再函數那里右鍵 -》過程-》輸入名字-》完成 ,你也可以百度下怎么創建的,我這里就不說太多啦。

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: MySQL 數據庫
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美日韩色图| 精品黄色一级片| 日韩精品一页| 亚洲一区日韩在线| 精品视频网站| 日韩成人av影视| 久久亚洲国产精品一区二区| 国产专区一区| 91一区二区三区四区| 国产精品videossex久久发布| 天堂俺去俺来也www久久婷婷| 欧美日韩国产高清电影| 久久精品免费看| 国产极品嫩模在线观看91精品| 欧美91在线| 久久精品国内一区二区三区水蜜桃| 国产精品国产一区| 欧美精品高清| 亚洲欧洲日本mm| 久久高清一区| 日韩精品视频在线看| 国产欧美啪啪| 国产精品亚洲产品| 精品久久97| 91精品一区二区三区综合在线爱| 亚洲一区二区三区四区五区午夜 | 韩国女主播一区二区三区| 999久久久免费精品国产| 蜜臀久久久久久久| 国产欧美丝祙| 88久久精品| 亚洲综合欧美| 欧美肉体xxxx裸体137大胆| 日韩精品不卡一区二区| 欧美中文一区| 久久精品亚洲| 四季av一区二区凹凸精品| 亚洲免费成人av在线| 热三久草你在线| 久久一区二区三区电影| 久久毛片亚洲| 国产精品a级| 国产欧美一区二区色老头| 久久国产精品亚洲77777| 久久精品青草| 视频在线不卡免费观看| 国产精品一级| 麻豆9191精品国产| 国产国产精品| 激情欧美亚洲| 国产精品国产三级国产在线观看| 国产精品久久久久av蜜臀| 亚洲成av在线| 久久国产日韩| 亚洲精品va| 亚洲一区成人| 蜜臀久久99精品久久久画质超高清| 久久精品国产68国产精品亚洲| 不卡一二三区| 天堂av在线| 欧美日韩一区二区综合| 91精品观看| 日韩精品一级二级| 日韩国产在线观看| 国产精品黄网站| 亚洲男人在线| 精品视频网站| 亚洲v在线看| 综合欧美精品| 亚洲一区二区日韩| 午夜亚洲精品| 日本中文字幕视频一区| 日本伊人午夜精品| 欧美精品国产| 国产中文欧美日韩在线| 日韩理论片av| 久久亚洲风情| 国产免费播放一区二区| 国产一区二区三区四区大秀 | 国产一区二区精品久| 亚洲www啪成人一区二区| 伊人久久婷婷| 日韩成人午夜精品| 日韩不卡一区| 蜜臀av一区二区三区| 久久精品xxxxx| 在线精品亚洲欧美日韩国产| 9色国产精品| 国产乱人伦精品一区| 国产伦久视频在线观看| 久久午夜精品一区二区| 国产精品一区亚洲| 久久国产电影| 亚洲精品小说| 国产日韩欧美三区| 欧美片第1页| 99视频+国产日韩欧美| 91av一区| 免费毛片在线不卡| 日韩av黄色在线| 亚洲精品国产嫩草在线观看| 国产精品99一区二区| 国产精品免费99久久久| 欧美日韩国产欧| 国产理论在线| 国产探花在线精品| 黄色亚洲大片免费在线观看| 精品中文字幕一区二区三区 | 久久亚洲影院| 日韩免费福利视频| 国产精品videosex极品| 亚洲区国产区| 亚洲精品国产偷自在线观看| 精品美女在线视频| 国产精品网站在线看| 日韩精品社区| 日韩va亚洲va欧美va久久| 精品一区在线| 在线视频观看日韩| 丝袜美腿诱惑一区二区三区| 九九九精品视频| 国产精品白浆| 婷婷综合福利| 少妇精品在线| 亚洲欧美专区| 色狠狠一区二区三区| 亚洲一区av| 亚洲欧洲日韩| 青青伊人久久| 久久精品亚洲| 精品免费视频| 免费高潮视频95在线观看网站| 国产成人1区| 欧美日韩精品在线一区| 蜜臀av免费一区二区三区| 91成人精品| 亚洲ww精品| 国产午夜一区| 日本久久精品| 欧美网站在线| 日韩区欧美区| 久久精品理论片| 国精品一区二区三区| 丝袜美腿亚洲一区| 天堂俺去俺来也www久久婷婷| 久久精品99久久久| 美女久久久久久 | 午夜在线一区二区| 日韩av电影一区| 欧美一区不卡| 日韩av在线中文字幕| 99在线观看免费视频精品观看| 日韩av网站免费在线| 精品一区二区三区的国产在线观看| 欧美激情网址| 午夜国产一区二区| 日韩精品久久理论片| 美女高潮久久久| 91久久中文| 精品视频一区二区三区四区五区| 午夜欧美巨大性欧美巨大| 三级亚洲高清视频| 国产精品99在线观看| 快she精品国产999| 久久av资源| 综合激情在线| 99久久99久久精品国产片果冰| 亚洲精品福利| 日本免费一区二区三区四区| 在线精品观看| 日韩黄色大片网站| 日韩国产精品久久久久久亚洲| 日韩精品看片| 麻豆高清免费国产一区| 男人的天堂久久精品| 高清久久一区| 国产亚洲一区| 蜜臀久久久99精品久久久久久| 伊伊综合在线| 日本少妇精品亚洲第一区| 夜夜嗨一区二区| 日韩一区二区在线免费| 国产精品第一| 日本欧美在线| 日韩在线成人| 一区二区国产在线| 国产韩日影视精品| 日韩av一级| 日产精品一区二区| 久久国产精品色av免费看| 美美哒免费高清在线观看视频一区二区| 精品国产a一区二区三区v免费| 日韩三级精品| 蜜臀av性久久久久蜜臀aⅴ流畅| 日韩久久电影| 国产精品嫩模av在线| 日韩精品一区二区三区中文字幕| 美女日韩在线中文字幕| 蜜臀a∨国产成人精品| 中文亚洲欧美|