将具有不同列数的CSV文件导入MySQL表

时间:2015-12-06 20:05:11

标签: mysql csv import

我有一个CSV文件,格式如下:

app/models

我想将这个CSV文件导入Mysql表" movieGenres"它有2列" movieId"和#34;类型"。所以,我需要在下表中得到结果:

"movieId";"Genre" 
"tt0111161";"Drama","Crime" 
"tt0468569";"Action","Drama","Crime"
"tt0021331"
"tt1853728";"Western"

问题是当我尝试导入时,它会在显示错误后停止一段时间:"行中的列数无效..."。 这是因为当它到达只有一列的行时,它会停止(就像我的例子中的第3部电影,因为有些电影没有流派)。

我真的不知道如何解决这个问题。有人可以帮助我吗?

谢谢,

1 个答案:

答案 0 :(得分:0)

您可以在将第二列插入数据库之前检查第二列的值,如下例所示:

#table: example

col-1 col-2 col-3 col-4

LOAD DATA INFILE ‘path/to/example.csv’ INTO TABLE example FIELDS TERMINATED BY ‘,’ LINES TERMINATED BY ‘\n’ IGNORE 1 LINES (col-1,col-2,col-3, @var1) SET col-4 = CASE WHEN @var1 IS NOT NULL 
       THEN @var1
       ELSE NULL
END