使用条件选项将 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
;

不要加载到相同的列或变量 - 结果将不可预测(甚至可能查询失败)。