2014-02-07 33 views
0

我有大約700萬行的數據庫,在那些行中我有大約20列,其中三列有數字,但數字在3列和不同位置重疊。我已經嘗試了很多解決方案,在這個網站和我得到的最好的是:我想在不創建臨時表的情況下從mysql中的多列刪除(導出)重複項

SELECT DISTINCT res_no FROM gd1file_4_5000000_records 
UNION 
SELECT DISTINCT mobile_no FROM gd1file_4_5000000_records 
UNION 
SELECT DISTINCT mobile_no2 FROM gd1file_4_5000000_records 

這只是給我的唯一編號的計數中,我可以導出一排,但數據的其餘部分是不存在現在,名字,姓氏等等。我需要的是保持數據原樣,但只刪除重複項。

所以我的表看起來像這樣:

IDNUM | INIT  | FIRST_NAME | res_no | mobile_no | mobile_no2 | 

所以我想保留這個列表是這樣,但刪除resmobilemobile2之間的受騙者,通過只能夠導出並沒有改變表中的原始文件。

+1

爲什麼你不想使用臨時表?我曾經在一個完整性檢查器上工作,該檢查器檢查兩種截然不同的模式之間的數據一致性,並且我能夠使用臨時表實現非常大的速度增加。那是MySQL 4. *如果我記得。 –

+0

期望的輸出結果如何? – peterm

+0

老實說,我是一個新手,並且一直在爲此奮鬥很長時間。嘗試過不同的方法,而且什麼也沒做。請原諒我的無知,因爲我是一個完整的noob我怎麼會用臨時表來解決這個問題?我想保留在與原始輸出相同的輸出中。 – user3282884

回答

0

這就是我所做的解決問題的方法,它可能並不是我想要做的,但它對我有用。 (字段1),字段2,最大字段3,最大字段4,最大字段5,最大字段6,最大字段7,最大字段8,最大字段9,最大字段10, )FROM表GROUP BY field2;

唯一的是它不會改變原始表格,但可以將結果導出到新表格。

相關問題