• <menu id="w2i4a"></menu>
  • logo Navicat使用教程-2019.1

    文檔首頁>>Navicat使用教程-2019.1>>Navicat使用教程:如何刪除MySQL中具有不同ID的重復(fù)行

    Navicat使用教程:如何刪除MySQL中具有不同ID的重復(fù)行


    下載Navicat Premium最新版本

    Navicat Premium是一個可連接多種數(shù)據(jù)庫的管理工具,它可以讓你以單一程序同時連接到MySQL、Oracle及PostgreSQL數(shù)據(jù)庫,讓管理不同類型的數(shù)據(jù)庫更加的方便。

    大多數(shù)重復(fù)記錄分為兩類:重復(fù)意義和非唯一鍵。在Navicat使用教程:如何在MySQL中定位和刪除有重復(fù)意義的值中,如何識別和刪除具有重復(fù)意義的值涉及到重復(fù)意義;在Navicat使用教程:如何用非唯一鍵識別重復(fù)項中涉及到如何識別非唯一密鑰。這意味著同一表中的兩個記錄具有相同的鍵,但可能具有或不具有不同的值和含義。這篇文章將介紹如何刪除具有重復(fù)數(shù)據(jù)但具有不同鍵的行。

    Navicat

    按類型標(biāo)識重復(fù)項

    Navicat使用教程:如何用非唯一鍵識別重復(fù)項中顯示的最后一個查詢以易于直觀掃描的格式列出了所有重復(fù)項:

    Repetitions	   	row_data
    ----------------------------------------------------------------
    2		22 (DAVIS, JENNIFER) | 22 (DAVIS, JENNIFER)
    2		23 (LOLLOBRIGIDA, JOHNNY) | 23 (GABLE, CHRISTIAN)
    2		41 (WAHLBERG, NICK) | 12 (WAHLBERG, NICK)

    在識別了所有重復(fù)的鍵和值之后,我們可以決定如何最好地處理冗余數(shù)據(jù)。

    JENNIFER DAVIS以相同的22鍵出現(xiàn)在兩個記錄中,使這些行完全重復(fù)。Nick Walberg的名稱字段是重復(fù)的,但ID不是。還有一個與兩個無關(guān)的演員相關(guān)聯(lián)的復(fù)制鍵:“JOHNNY LOLLOBRIGIDA”和“CHRISTIAN GABLE”的復(fù)制鍵#23。對于22和23的重復(fù)鍵,第一個鍵是真正的重復(fù)鍵,而第二個鍵只需要為其中一個記錄生成一個新鍵。

    使用刪除聯(lián)接刪除行

    Navicat使用教程:如何在MySQL中定位和刪除有重復(fù)意義的值中,我們通過對值執(zhí)行搜索和替換,從選擇的結(jié)果集中刪除了重復(fù)的值。在這里,我們將使用DELETE JOIN語句永久刪除其中一個重復(fù)的行。

    因為我們正在比較同一個表中的字段,所以必須將該表與其自身聯(lián)接。我們可以通過比較WHERE子句中的ID來選擇保留較低或較高的ID號。以下語句保留最高的ID:

    DELETE a FROM wp.amalgamated_actors a
      INNER JOIN wp.amalgamated_actors a2
    WHERE a.id < a2.id
    AND   a.first_name = a2.first_name
    AND   a.last_name  = a2.last_name;
    
    1 row(s) affected	0.093 sec

    在本例中,受影響(已刪除)行是標(biāo)識為12的NICK WAHLBERG??焖龠x擇確認結(jié)果:

    id	   	first_name	   	last_name
    -------------------------------------
    10		PENELOPE		GUINESS
    12		NICK		WAHLBERG
    14		ED		CHASE
    22		JENNIFER		DAVIS
    23		JOHNNY		LOLLOBRIGIDA
    27		BETTE		NICHOLSON
    34		GRACE		MOSTEL
    39		JOE		SWANK
    23		CHRISTIAN		GABLE
    22		JENNIFER		DAVIS

    如果要保持最低的ID,只需將a.id

    id	   	first_name	   	last_name
    -------------------------------------
    10		PENELOPE		GUINESS
    14		ED		CHASE
    22		JENNIFER		DAVIS
    23		JOHNNY		LOLLOBRIGIDA
    27		BETTE		NICHOLSON
    34		GRACE		MOSTEL
    41		NICK		WAHLBERG
    39		JOE		SWANK
    23		CHRISTIAN		GABLE
    22		JENNIFER		DAVIS

    刪除具有非唯一鍵的行

    在JENNIFER DAVIS的例子中,他出現(xiàn)兩次,同一個ID為22,我們需要使用不同的方法,因為使用a.id=a2.id運行上面的語句將針對表中的每一行!原因是我們基本上是在將每一行與自身進行匹配!在下一篇文章中,我們將學(xué)習(xí)如何刪除具有非唯一鍵的行,如這些鍵。

    購買Navicat Premium正版授權(quán),請點擊“咨詢在線客服”喲!

    PyCharm

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();