2015-06-10 15 views
1

我需要將來自csv文件的數據加載到特定表中。我將5個字段的csv文件加載到表中。我需要爲csv文件中的特定字段值應用正則表達式。如果它不匹配,我需要拒絕該記錄。可能嗎 ?使用正則表達式加載數據查詢

這是我的負荷數據查詢:

LOAD DATA LOCAL INFILE ''/test.csv'' 
INTO TABLE TEST_TABLE FIELDS 
TERMINATED BY '','' 
LINES TERMINATED BY ''\n'' 
    (@FIELD1,@FIELD2,@FIELD3,@FIELD4,@FIELD5) 
SET 
    FIELD1=STR_TO_DATE(@FIELD1,''%d-%m-%Y''), FIELD2=nullif(@FIELD2,''''), 
    FIELD3=nullif(@FIELD3,''''), FIELD4=nullif(@FIELD4,''''), 
    FIELD5=nullif(@FIELD5,''''); 

如果在字段4進來的CSV文件中的值等於200或300,我需要考慮的記錄和其他方式加載其他價值觀,我需要拒絕記錄。

樣品文件::

1),234232323,STATUS,200,33

2),45454545,STATUS,300,33

3),646546445,STATUS,100 ,33

這裏應該考慮第一和第二條記錄,第三條記錄應該被拒絕。

回答

0
LOAD ...; 
DELETE TEST_TABLE WHERE field4 NOT IN (200,300);