MySql:加载数据文件,临时列

MySql:加载数据文件,临时列,mysql,load,temporary,Mysql,Load,Temporary,我在.CSV文件中有以下数据结构: Name Month1 Month2 Month3 Name1 40 20 10 Name2 14 10 11 我需要在以下结构中加载此数据 Name Month Value Name1 1 40 Name1 2 20 ... 我的想法是在循环中执行加载数据文件。第一次,只读Month1信息,

我在.CSV文件中有以下数据结构:

Name       Month1     Month2     Month3
Name1       40          20         10
Name2       14          10         11
我需要在以下结构中加载此数据

Name    Month   Value
Name1    1       40
Name1    2       20
...
我的想法是在循环中执行加载数据文件。第一次,只读Month1信息,第二次,仅加载Month2信息及更高版本

我的加载数据文件代码如下:

LOAD DATA LOCAL INFILE '/file.csv' 
INTO TABLE demo.test
FIELDS TERMINATED BY ';'                
OPTIONALLY ENCLOSED BY '"'              
LINES TERMINATED BY '\n' 
IGNORE 1 LINES  
(NAME, @var1, @var2, @var3)
SET QTD = @var1;
有没有办法动态定义@var1?因此,对于第一个交互,用于定义QTD的临时变量将是“var1”,第二个交互将是“var2”,以此类推


关于,

是的,当然可以使用
WHILE
循环()。您也可以按原样将CSV文件加载到临时表中,并使用
INSERT-into
填充上一条注释中的最终表()第二个选项。不要做第一步..慢得多.Jup您需要使用一个暂存表,在其中导入表a使用unpivot方法或列来记录转换(使用UNION ALL),因此您需要两个查询来完成此操作。。。。或者使用MySQL的LOAD_FILE()()函数,结合一些SQL数字生成器和嵌套的SUBSTRING_索引函数,创建自己的CVS解析器,这样您就可以从CVS文件中拆分记录和列,并将其用作插入的传递表。。。选择查询。。