2015-01-13 45 views
0

我想加載一個文本文件,它看起來像這樣:Mysql的跳過行的LOAD DATA INFILE

11 aaa 
22 bbb 
# comment 
33 ccc 
44 bbb 
# comment 
55 eee 

我使用這個命令

LOAD DATA LOCAL INFILE '/d:\test.txt' 
INTO TABLE foo 
COLUMNS TERMINATED BY ' ' 
IGNORE 1 LINES 
(@'#') 

,我想跳過行的明星#

回答

0

我不認爲忽略n行工作如你所料。 文件說

如果你想讀的有你想要忽略一個共同的前綴的線,你可以才用開頭的行會BY「prefix_string」來跳過前綴,任何東西。如果一行不包含前綴,則整行將被跳過。假設你執行以下語句:

LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test 
FIELDS TERMINATED BY ',' LINES STARTING BY 'xxx'; 

如果數據文件是這樣的:

xxx"abc",1 
something xxx"def",2 
"ghi",3 

結果行會( 「ABC」,1)和(「def」,2)。文件中的第三行被跳過,因爲它不包含前綴。

IGNORE數字LINES選項可用於忽略文件開頭處的行。例如,你可以使用IGNORE 1 LINES來跳過包含列名開始的標題行:

LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test IGNORE 1 LINES; 

我覺得你最好的拍攝將在加載文件之前清除輸入文本。