[英]ignore first two characters on a column while importing csv to mysql
我正在尝试将一个csv文件导入到mysql表中,但是我需要在导入到mysql之前删除特定列上的前两个字符。 这是我的陈述:
string strLoadData = "LOAD DATA LOCAL INFILE 'E:/park/Export.csv' INTO TABLE tickets FIELDS terminated by ',' ENCLOSED BY '\"' lines terminated by '\n' IGNORE 1 LINES (SiteId,DateTime,Serial,DeviceId,AgentAID,VehicleRegistration,CarPark,SpaceNumber,GpsAddress,VehicleType,VehicleMake,VehicleModel,VehicleColour,IssueReasonCode,IssueReason,NoticeLocation,Points,Notes)";
列IssueReasoncode' has data like 'LU12' ,
但是我需要删除前2个字符,它应该只包含整数而不是alpha数字。 我需要从该列中删除'LU'
。
是否可以在left(IssueReasonCode +' '2).
这样写left(IssueReasonCode +' '2).
该列为varchar(45),由于其上的数据量较大,现在无法更改。
谢谢
LOAD DATA INFILE
能够在您读入每列的数据时对其执行功能( 在此处 qv)。 对于您的情况,如果要从IssueReasonCode
列中删除前两个字符,可以使用:
RIGHT(IssueReasonCode, CHAR_LENGTH(IssueReasonCode) - 2)
删除前两个字符。 您可以使用SET
在LOAD DATA
语句的末尾指定此类列映射。 您的声明应类似于以下内容:
LOAD DATA LOCAL INFILE 'E:/park/Export.csv' INTO TABLE tickets
FIELDS terminated by ','
ENCLOSED BY '\"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(SiteId, DateTime, Serial, DeviceId, AgentAID, VehicleRegistration, CarPark, SpaceNumber,
GpsAddress, VehicleType, VehicleMake, VehicleModel, VehicleColour, IssueReasonCode,
IssueReason, NoticeLocation, Points, Notes)
SET IssueReasonCode = RIGHT(IssueReasonCode, CHAR_LENGTH(IssueReasonCode) - 2)
引用这和引用这个例子中,你可以试试下面来看看它是否工作
SET子句中的用户变量可以以多种方式使用。 以下示例将第一个输入列直接用于t1.column1的值,并将第二个输入列分配给用户变量,该用户变量在用于t1.column2的值之前要进行除法运算:
LOAD DATA INFILE'file.txt'到表t1(column1,@ var1)SET column2 = @ var1 / 100;
string strLoadData = "LOAD DATA LOCAL INFILE 'E:/park/Export.csv' INTO TABLE tickets FIELDS terminated by ',' ENCLOSED BY '\"' lines terminated by '\n' IGNORE 1 LINES (SiteId,DateTime,Serial,DeviceId,AgentAID,VehicleRegistration,CarPark,SpaceNumber,GpsAddress,VehicleType,VehicleMake,VehicleModel,VehicleColour,@IRC,IssueReason,NoticeLocation,Points,Notes) SET IssueReasonCode = substr(@IRC,2) ;";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.