2011-08-15 45 views
1

我目前正在用mysql導入一個字典,它的單詞由_分隔。我想知道如何指定單詞由_分隔。例如,話是這樣:加載數據infile用「_」分隔單詞

Super_Mario 
Stack_Overflow 
Another_Word 

所以每一行隨後將被存儲爲:

Super Mario 
Stack Overflow 
Another Word 

我有這個疑問現在:

LOAD DATA LOCAL INFILE 
C:/upload/dictionary.csv 
INTO TABLE dictionary 
fields terminated by ',' lines terminated by '\n' 

我將不得不使用fields terminated by '_'

回答

2

沒有,你只需要使用SET條款(就像在一個UPDATE)設置該字段的值用字符串REPLACE()的操作替換帶空格的下劃線。

LOAD DATA LOCAL INFILE 
C:/upload/dictionary.csv 
INTO TABLE dictionary (@var1) 
SET your_column_name = REPLACE(@var1, '_', ' ') 

INTO TABLE dictionary(@var1)位只是意味着「只有一個我感興趣的文件中列,我想將其存儲在@var1,所以我可以在我的SET條款之後使用它,而不是把它的直接進入專欄。「在輸入文件有多個列時,如何使用the documentation for LOAD DATA INFILE中的「SET子句」進行Ctrl + F查看如何使用SET子句。

0

fields terminated by '_'會解釋每一個字由_分離作爲新列

所以Super_Mario,STACK_OVERFLOW和Another_Word將分別結束了在每行兩列。如果你的整個詞典是由兩個單詞組成的,而你的詞典表有兩列,它會起作用,但我感覺並不是你文件中的每個單詞都會是兩個單詞

如果你想存儲每個單詞在文件中作爲一個單獨的列,但所有的_ s用空格替換,你可以在之後做這樣的導入(或者做@Jordan所說的並且做爲導入的一部分,這對我來說聽起來更好)

UPDATE dictionary SET columnname = replace(columnname,'_',' ')

+0

我試過ESCAPE BY'_'那個工作...但我仍然需要他們之間的空間:p – re1man