Mysql 加载数据填充时db和csv文件中的不同列名

Mysql 加载数据填充时db和csv文件中的不同列名,mysql,Mysql,我正在尝试使用load data LOCAL infle将数据加载到MYSQL(在MAMP中)。数据库表中指定的某些数据元素与数据文件(多个csv文件)中的列名不同。例如:对于同一数据元素,数据库有一列“location\u Infected”,数据文件有一列名称“location\u name”。此外,数据文件的列数和列名也不完全相同。在数据库表中指定的~200个数据元素中,每个数据文件可能有大约30-40列。有人能建议如何在db表和csv文件之间映射列名吗?我尝试了以下操作,但它抛出了一个错

我正在尝试使用
load data LOCAL infle
将数据加载到MYSQL(在MAMP中)。数据库表中指定的某些数据元素与数据文件(多个csv文件)中的列名不同。例如:对于同一数据元素,数据库有一列“location\u Infected”,数据文件有一列名称“location\u name”。此外,数据文件的列数和列名也不完全相同。在数据库表中指定的~200个数据元素中,每个数据文件可能有大约30-40列。有人能建议如何在db表和csv文件之间映射列名吗?我尝试了以下操作,但它抛出了一个错误:“位置\u名称不存在”


映射在
LOAD DATA
语句中定义。如果您想重新排列列,您应该在那里调整它们以匹配CSV文件中的任何内容

忽略1行
部分跳过了典型的CSV标题标签。导入过程不使用这些


在这种情况下,
SET location\u name=location\u impact
毫无意义。如果要导入到
位置\u name
列中,请在定义中指定该列。

您可以通过将列指定给伪变量跳过这些列:

LOAD DATA LOCAL INFILE 'pathtothefile' INTO TABLE tablename 
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\r'
IGNORE 1 LINES 
(col1,col2,@skipme,@skipme,col3..............);

映射在LOAD DATA语句中定义。如果您想重新排列列,您应该在那里调整它们以匹配CSV文件中的任何内容

“忽略1行”部分跳过典型的CSV标题标签。导入过程不使用这些

在这种情况下,设置location\u name=location\u impacted毫无意义。如果要导入到“位置\名称”列中,请在定义中指定该列

LOAD DATA LOCAL INFILE 'pathtothefile' INTO TABLE tablename 
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\r'
IGNORE 1 LINES 
(col1,col2,@skipme,@skipme,col3..............);