如果我想导入csv / excel文件但我希望内容位于特定列中,该怎么办呢?
我的数据库中有6列。我们只需将其称为a,b,c,d,e,f。
我想从excel文件向c,d,e插入内容。 将自动生成列a,b和f的内容。
我正在使用LOAD DATA INFILE脚本。
答案 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;一个字段,将其分配给用户定义的变量......必须将文件中的字段分配给某个字段,如果您不想将其分配给列,则将其分配给用户定义的变量。
您的问题中没有清楚文件中有多少字段,哪个字段应分配给哪一列。