早上好,stackoverflownians,刪除兩列的重複項
我有一個非常大的表與兩列上的重複。也就是說,如果在排號碼col1和COL2在B行是重複的,我應該只保留一個排:
## table_1
col1 col2
1 10
1 10
1 10
1 11
1 11
1 12
2 20
2 20
2 21
2 21
# should return this tbl without duplication
col1 col2
1 10
1 11
1 12
2 20
2 21
我以前的代碼的帳戶只爲COL1,我不知道如何在這個查詢2個coluns:
CREATE TABLE temp LIKE db.table_1;
INSERT INTO temp SELECT * FROM table_1 WHERE 1 GROUP BY col1;
DROP TABLE table_1;
ALTER TABLE temp RENAME table_1;
所以我想過這個問題:
CREATE TABLE temp LIKE db.table_1;
INSERT INTO temp(col1,col2)
SELECT DISTINCT col1,col2 FROM table_1;
then drop and rename..
但我不知道這是要去工作和MySQL往往是不穩定的,如果時間太長,我將不得不停止查詢和我的cr再次灰服務器.. T.T
我們有2億行,他們都至少有一個重複..
代碼的任何建議? :) 另外..需要多長時間?幾分鐘或幾小時?
檢查這個問題的第一個答案;它可以幫助你找出解決方案; http://stackoverflow.com/questions/7105618/how-to-get-only-repeated-records-in-a-table –
INSERT INTO ... SELECT DISTINCT是正確的方法。如果您遇到穩定性問題,請將您的站點/系統脫機,直到查詢完成。提前計劃停機時間。 – cdhowie