Mysql跳过LOAD DATA INFILE中的行

时间:2015-01-13 17:26:52

标签: mysql load 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
(@'#')

我想用#

跳过排行的明星

1 个答案:

答案 0 :(得分:0)

我不认为忽略n行按预期工作。 文档说

  

如果您想要读入的所有行都有一个您想要忽略的公共前缀,则可以使用LINES STARTING 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;

我认为你最好的镜头是在加载文件前清除输入文字。