2017-05-31 278 views
-5

我只是問在這裏什麼是在MySQL中重複刪除表的最佳方法?MySQL記錄重複數據刪除

我與字段idnamelastnameuser_nobirthdaypercentage,然後parent_id一個示例表。我想要的是在percentageparent_id字段中添加一個值,該字段基於哪個記錄是重複的以及它們的相似程度。

我只是要求一種方法。檢查每個領域兩次以檢查比賽是否有效?或者,還有另一種方式嗎?

+2

如果你不能添加任何代碼,你能舉一個例子嗎? –

+0

你的數據庫有多大?是否可以將所有記錄同時讀入內存?您的目標是對現有記錄進行重複數據刪除,以防止將來出現重複記錄,或兩者兼而有之? – FKEinternet

+0

你還必須給出一些解釋,說明你是如何決定事物的相似程度的?這是否意味着某些字段是相同的,一些不同的,相似的名稱(不管那意味着什麼)等等。 –

回答

1

假設id領域是獨一無二的每個記錄,並與其他類似的那些數據庫中的第一個記錄是parent_id

  1. 看了你的第一個記錄,存儲在本地變量的字段值。

  2. 讀取數據庫中的每個連續記錄。如果它的值爲parent_id,請轉到下一條記錄。

  3. 將新讀取的記錄中的字段與先前存儲的記錄中的字段進行比較。如果有足夠的匹配項,請更新新讀取的記錄的parent_idpercentage字段。

  4. 當您到達數據庫的末尾但尚未比較ini的所有記錄時,請閱讀下一個父記錄(即,第二次,數據庫中的第二條記錄,假設它沒有其parent_id字段集),存儲其字段值在比較變量,從第2步

重複閱讀問題的描述與你other question後,它看起來像你想改變選擇步驟4中的標準:爲了找到「更好」的匹配,您不希望跳過parent_id字段集的記錄,而是每使用記錄在數據庫中,作爲比較來源。這也意味着你不會想跳過步驟2中的記錄與parent_id已經設置 - 你馬上要讀每一條記錄在數據庫中ň次,其中ñ是它的行數。

+0

謝謝!我會稍後再嘗試,並在這裏提供更新。 –