使用条件选项将 csv 文件导入 sql workbench
Importing csv file to sql workbench with conditions options
我想将 csv 文件导入 workbench mysql。
CREATE TABLE food(
Id_food INT NOT NULL AUTO_INCREMENT,
`Name` VARCHAR(255) NOT NULL,
brand VARCHAR(255) NOT NULL,
producer VARCHAR(255),
amount INT,
total_amount INT,
PRIMARY KEY (Id_food)
);
LOAD DATA LOCAL INFILE 'file.csv'
INTO TABLE food
FIELDS TERMINATED BY ';'
ENCLOSED BY '"'
LINES TERMINATED BY '%'
IGNORE 1 ROWS
(
Name,
amount,
amount,
brand
);
csv 文件包含食物列表。
我要导入特定列:
名称、数量(ml)、数量(g) 和品牌。
csv 中的列顺序是:
姓名,数量(克),数量(毫升),品牌,过敏原,....
所以金额是 csv 文件中的两列。
如果 amount(ml) 列有一个数字,另一个 amount(g) 列有一个减号(“-”)。
如何在导入时将这两列合并到我的金额列中?
还有一个问题total_amount栏填写金额后如何填写?
将 excess/ambiguous 列检索到用户定义的变量中:
LOAD DATA LOCAL INFILE 'file.csv'
INTO TABLE food
FIELDS TERMINATED BY ';'
ENCLOSED BY '"'
LINES TERMINATED BY '%'
IGNORE 1 ROWS
(
Name,
@amount_ml,
@amount_mg,
brand,
@dummy1,
@dummy2,
... -- necessary amount of dummy variables according to CSV structure
)
SET amount = CASE WHEN @amount_ml > 0 -- adjust the condition due to CSV structure
THEN @amount_ml
ELSE @amount_mg
END
;
不要加载到相同的列或变量 - 结果将不可预测(甚至可能查询失败)。
我想将 csv 文件导入 workbench mysql。
CREATE TABLE food(
Id_food INT NOT NULL AUTO_INCREMENT,
`Name` VARCHAR(255) NOT NULL,
brand VARCHAR(255) NOT NULL,
producer VARCHAR(255),
amount INT,
total_amount INT,
PRIMARY KEY (Id_food)
);
LOAD DATA LOCAL INFILE 'file.csv'
INTO TABLE food
FIELDS TERMINATED BY ';'
ENCLOSED BY '"'
LINES TERMINATED BY '%'
IGNORE 1 ROWS
(
Name,
amount,
amount,
brand
);
csv 文件包含食物列表。
我要导入特定列:
名称、数量(ml)、数量(g) 和品牌。
csv 中的列顺序是:
姓名,数量(克),数量(毫升),品牌,过敏原,....
所以金额是 csv 文件中的两列。
如果 amount(ml) 列有一个数字,另一个 amount(g) 列有一个减号(“-”)。
如何在导入时将这两列合并到我的金额列中?
还有一个问题total_amount栏填写金额后如何填写?
将 excess/ambiguous 列检索到用户定义的变量中:
LOAD DATA LOCAL INFILE 'file.csv'
INTO TABLE food
FIELDS TERMINATED BY ';'
ENCLOSED BY '"'
LINES TERMINATED BY '%'
IGNORE 1 ROWS
(
Name,
@amount_ml,
@amount_mg,
brand,
@dummy1,
@dummy2,
... -- necessary amount of dummy variables according to CSV structure
)
SET amount = CASE WHEN @amount_ml > 0 -- adjust the condition due to CSV structure
THEN @amount_ml
ELSE @amount_mg
END
;
不要加载到相同的列或变量 - 结果将不可预测(甚至可能查询失败)。