[英]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.