MySQL将csv字段映射到datatable中的特定字段

时间:2016-08-01 11:10:24

标签: mysql csv load

SQL新手,并尝试将CS​​V文件加载到我的数据表中,其中CSV中的列与表中的相同顺序不匹配。 CSV中也没有PK

来说明这是我的CSV和SQL表格的片段

csv1,CSV2,csv3,csv4 ...

SQL1(PK),SQL2,SQL3,sql4,sql5 ...

负载需要像这样

csv1 -> sql2
csv2 -> sql3
csv3 -> sql4

除了使用以下方法实现我想要的东西之外还有其他方法

load data local infile 'xxx'
into table tbl_x
fields terminated by ','
lines terminated by '\r\n'
ignore 4 lines
(@csv1,@csv2,@csv3,@csv4)
set 
sql2 = @csv1,
sql3 = @csv2,
sql4 = @csv3;

1 个答案:

答案 0 :(得分:0)

您可以将CSV数据加载到临时表中,然后将该数据插入到所需的目标表中。

LOAD DATA LOCAL INFILE 'xxx'
INTO TABLE tbl_temp
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n'
IGNORE 4 LINES

然后使用INSERT INTO ... SELECT填充tbl_x

INSERT INTO tbl_x (sql1, sql2, sql3, ...)
SELECT NULL, csv1, csv2, ...
FROM tbl_temp

通过将NULL插入主键列,MySQL应该自动增加该列。