我已经从.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();"
如果数据量不太大,则可以将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/