2010-07-13 72 views
7

我有幾個CSV文件想加載到我的數據庫中,但CSV文件包含的數據比我的數據庫中多得多。如何僅將CSV文件中的選定列導入到我的數據庫中?MySQL導入CSV數據 - 忽略一些csv列

爲了討論起見,我們假設CSV包含一個標題行,列標題爲A到Z,然後是兩百萬行,列A到Z的值。假設我的表myTest包含B,N和S,所以我只想將列B,N和S從CSV文件導入myTest。

我正打算做的事:

mysqlimport --local --columns=B,N,S --ignore-lines=1 --delete --default-character-set=latin1 --fields-optionally-enclosed-by=\" --fields-terminated-by=\, --lines-terminated-by=\r\n myDb myTest.csv 

但填充行B,N和S列A不與B列的值,N和S喜歡我的價值觀,B和C,通緝。

任何建議如何讓它只導入B,N和S?

回答

14

您需要更改--columns=B,N,S並添加參數以跳過不需要的所有列。

例如,爲了使用第1,第4和第7列使用:

--columns=B,@x,@x,N,@x,@x,S 

這將發送第2,第3,第5和第6列參數@x。

參考:http://dev.mysql.com/doc/refman/5.1/en/mysqlimport.html

+0

非常感謝你,這個伎倆!我整個上午都在閱讀該鏈接,但並沒有想到這樣做:-) – niklassaers 2010-07-13 08:07:24