MYSQL使用LOAD DATA INFILE从.csv导入数据,并以升序排列到特定列

问题描述 投票:0回答:1

我已经从.csv文件加载了数据,并正在使用LoadData方法将其插入数据库。

下面的查询对我有用:

LOAD DATA LOCAL INFILE '"$FILE1"' 
INTO TABLE inventory FIELDS 
TERMINATED BY ','
ENCLOSED BY '\"' 
LINES TERMINATED BY '\r\n' 
IGNORE 1 LINES (@ignore ,StockType ,StockNo ,ServiceVIN ,YearMake ,CMake ,SModel ,BodyType ,Color ,Interiorcolor ,@ignore ,EngineSize ,@ignore ,Transmission ,Miles ,List ,@ignore ,@ignore ,Drive ,@ignore ,Details ,@ignore ,ModelType ,@ignore ,@ignore ,@ignore ,Trim) 
SET CreatedAt = NOW();"

但是我需要在列表列中以升序插入数据。这可能吗?

我已在此查询中尝试过orderby,但无法正常工作。

工作查询:

LOAD DATA LOCAL INFILE '"$FILE1"' 
INTO TABLE inventory FIELDS TERMINATED BY ',' 
ENCLOSED BY '\"' 
LINES TERMINATED BY '\r\n' 
IGNORE 1 LINES (@ignore ,StockType ,StockNo ,ServiceVIN ,YearMake ,CMake ,SModel ,BodyType ,Color ,Interiorcolor ,@ignore ,EngineSize ,@ignore ,Transmission ,Miles ,List ,@ignore ,@ignore ,Drive ,@ignore ,Details ,@ignore ,ModelType ,@ignore ,@ignore ,@ignore ,Trim) 
SET CreatedAt = NOW();"
mysql csv import sql-order-by load-data-infile
1个回答
0
投票

如果数据量不太大,则可以将select语句的结果用作Insert语句的数据源。

逐步:1)

LOAD DATA LOCAL INFILE'“ $ FILE1”'到表格库存中以“,”结尾的字段封闭在'\“''\ r \ n'终止的行忽略1行(@ignore,StockType,StockNo,ServiceVIN,YearMake,CMake,SModel,BodyType,Color,Interiorcolor,@ ignore,EngineSize,@ ignore,Transmission,Miles,List,@ ignore,@ ignore,Drive,@ ignore,详细信息,@ ignore,ModelType,@ ignore,@ ignore,@ ignore,Trim)SET CreatedAt = NOW();“

2)插入库存(column_list)选择select_list从库存_tmpORDER BY栏1

您可以在此处阅读更多详细信息:http://www.mysqltutorial.org/mysql-insert-into-select/

© www.soinside.com 2019 - 2024. All rights reserved.