2015-06-10 5 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

Здесь следует учитывать 1-й и 2-й записи, а 3-я запись должна быть отклонена.

ответ

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

 Смежные вопросы

  • Нет связанных вопросов^_^