Mysql 使用条件选项将csv文件导入sql workbench
我想将csv文件导入workbench mysqlMysql 使用条件选项将csv文件导入sql workbench,mysql,csv,import,options,Mysql,Csv,Import,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
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文件包含食物列表
我要导入特定列:
名称、数量(毫升)、数量(克)和品牌
csv中的列顺序为:
名称、数量(克)、数量(毫升)、品牌、过敏原等
因此,金额是csv文件中的两列
如果金额(ml)列有一个数字,则另一个金额(g)列中有一个负号(“-”)
导入时,如何组合“金额”列中的这两列
另一个问题是,如何在填写金额后填写“总金额”列?将多余/不明确的列检索到用户定义的变量中:
加载数据本地内嵌'file.csv'
进入餐桌食物
以“;”结尾的字段
附以“.”
以“%”结尾的行
忽略1行
(
名称
@金额_ml,
@数量(毫克),,
品牌
@dummy1,
@笨蛋2,
…--根据CSV结构需要的虚拟变量数量
)
设置金额=@amount\u ml>0时的情况——根据CSV结构调整条件
然后@amount\u ml
其他@amount\u mg
终止
;
不要加载到同一列或变量中-结果将不可预测(甚至可能是查询失败).@yoggozuna这在中有很好的描述。谢谢,有没有办法忽略特定的行?如忽略第54行?仅读取您可以忽略前几行或忽略没有前缀的行。@yoggozuna没有这种可能性。您可以将所有行导入到诱惑中,然后通过另一个查询仅将所需的行插入到工作表中。