MySQL - 将.CSV / Excel文件导入MySQL

时间:2014-09-16 01:08:54

标签: mysql import

如果我想导入csv / excel文件但我希望内容位于特定列中,该怎么办呢?

我的数据库中有6列。我们只需将其称为a,b,c,d,e,f。

我想从excel文件向c,d,e插入内容。 将自动生成列a,b和f的内容。

我正在使用LOAD DATA INFILE脚本。

1 个答案:

答案 0 :(得分:0)

一个选项是将用户定义的变量指定为fiel的目标,代替LOAD DATA语句末尾的列列表中的列名。

例如(省略大部分语法):

LOAD DATA ... 
...     
(@dummy1, @dummy2, c, d, e, @dummy3)

一行中的第一个字段将分配给用户定义的变量@ dummy1,第二个字段将分配给另一个用户定义的变量,第三个,第四个和第五个字段将分配给列c,d和e(分别) ),第六个字段将被分配给另一个用户定义的变量。

如果要为表达结果的列提供值,可以使用SET子句......

LOAD DATA ... 
...     
(@a, @b, c, d, e, @dummy3) 
SET a = UPPER(@a) 
  , b = STR_TO_DATE(@b,'%m/%d/%Y')
  , f = CONCAT(@a,@b)

<强>更新

如果csv中只有三个字段,并且您希望将第一个字段分配给列c,则将第二个字段值分配给列d,将第三个字段值分配给列{{ 1}} ...

e

LOAD DATA ... ... (c, d, e) 列表中列名称的位置,用于确定将哪个字段值分配给哪个列。到&#34;跳过&#34;一个字段,将其分配给用户定义的变量......必须将文件中的字段分配给某个字段,如果您不想将其分配给列,则将其分配给用户定义的变量。

您的问题中没有清楚文件中有多少字段,哪个字段应分配给哪一列。