久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

如何合并去重MySQL數據表

146次閱讀
沒有評論

共計 1540 個字符,預計需要花費 4 分鐘才能閱讀完成。

自動寫代碼機器人,免費開通

這篇文章將為大家詳細講解有關如何合并去重 MySQL 數據表,文章內容質量較高,因此丸趣 TV 小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

場景:

爬取的數據生成數據表,結構與另一個主表相同,需要進行合并 + 去重

解決:(直接舉例)

首先創建兩個表 pep,pep2,其中 pep 是主表

CREATE TABLE IF NOT EXISTS `pep/pep2`(
`id` INT UNSIGNED AUTO_INCREMENT,
`no` VARCHAR(100) NOT NULL,
PRIMARY KEY ( `id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

然后向 pep 中插入兩條數據,pep2 中插入一條與 pep 中相同的一條數據

insert into pep(no) values( abc 
insert into pep(no) values( caa 
insert into pep2(no) values(abc

將 pep2 的數據插入 pep 中

insert into pep (no) select no from pep2;

分組去重創建新的臨時表 tmp

create table tmp select id,no from pep group by no;

注意:創建完這個表的 id 字段類型已經不是主鍵自增

  可能也會報錯
 ```Syntax error or access violation: 1055 Expression #1 of SELECT 
 list is not in GROUP BY clause and contains nonaggregated 
 column  XXX.Y.ZZZZ  which is not functionally dependent on 
 columns in GROUP BY clause; this is incompatible with
 sql_mode=only_full_group_by
 ```
  解決:執行以下兩個命令: ```
 mysql  set global sql_mode= STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 
 
 mysql  set session sql_mode= STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 
 ```

刪除 pep 表,并將 tmp 表重命名為 pep

drop table pep;
alter table tmp rename to pep;

查看 desc 結構和 select * from pep 發現 id 的字段類型變了,這里需要改回原來的類型;

alter table pep add primary key (id);
alter table pep modify id int auto_increment;

還有可以使用 join 來做去重,更快的還可以添加一個字段(可以是幾個字段 + 起來的的 md5 值),給這個字段創建一個唯一索引 unique,以后插入數據的時候,自動回過濾掉重復的數據。

關于如何合并去重 MySQL 數據表就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向 AI 問一下細節

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-12-04發表,共計1540字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 遵义市| 道真| 台湾省| 大丰市| 姚安县| 黄骅市| 临清市| 牟定县| 隆化县| 磐石市| 靖州| 双牌县| 东乌珠穆沁旗| 天门市| 常宁市| 承德县| 定陶县| 南木林县| 宁晋县| 邵阳县| 离岛区| 岱山县| 浏阳市| 江达县| 甘南县| 夏邑县| 汕头市| 宁武县| 古丈县| 湘潭市| 岳西县| 嘉祥县| 虞城县| 克什克腾旗| 固始县| 荥阳市| 鄂托克前旗| 仪陇县| 祁阳县| 拜城县| 鹤壁市|