希望我可以清楚地解釋這一點。我有一張表格,該表格必須是組內人員的唯一ID。這些ID使用名字和出生日期的前3個字母生成。通常,對於較小的組(小於500),這可以正常工作。然而,在大羣體中,我們確實碰到了一些重複。然後,我們只需將-1,-2,-3等附加到任何重複的ID。例如:MySQL在一張表中更新基於匹配和不匹配條件的重複ID
ID GROUP UID FIRST_NAME
1 123456 ALE1990ALEXIS
2 123456 ALE1990ALEXANDER
3 123456 ALE1990ALEJANDRO
4 789789 ALE1990ALEX
我想要做的是用於ID 2和3追加一個-1和-2分別到其UID字段,以便1,2和3是現在唯一的(GROUP + UID) 。 ID 4將被忽略,因爲該組是不同
我已經開始像這樣的東西:
UPDATE table A
JOIN table B
ON B.GROUP = A.GROUP
AND B.UID = A.UID
AND B.FIRST_NAME <> A.FIRST_NAME
AND B.ID < A.ID
SET A.duplicate_record = 1;
這應該設置duplicate_record領域的ID 2和3 = 1,但後來我還是需要追加一個-1,-2,-3等這些UIDs,我不知道該怎麼做。也許而不是隻設置一個標誌= 1重複我應該設置重複記錄的計數?
也許這將是簡單的解析ID,檢查附錄。如果存在,只需將其轉換爲int並添加1,重新追加和更新。當然,如果它不存在,你可以追加1. –
爲什麼不總是*追加ID,這將保證UID將永遠是唯一的,無論組是什麼? – kmoser