Подтвердить что ты не робот

MySQL "LOAD DATA INFILE" и Missing Double Quotes

Я пытаюсь загрузить CSV в MySQL, используя технику LOAD DATA INFILE. Он работает нормально, но у меня есть проблема, когда некоторые столбцы используют двойные кавычки, а некоторые нет.

Пример:

something,123,something,"Bauer, Jack",123,something

Что происходит, запятые внутри кавычек ломают импорт, поэтому мои данные все подхватываются в конце. Не уверен, как получить импорт, чтобы избежать запятых внутри двойных кавычек.

mysql --user=<USER> --password=<PASS> -e "LOAD DATA INFILE '<FILENAME>' INTO TABLE <TABLENAME> FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n' (col1, col2, col3, ...)" <DATABASE>
4b9b3361

Ответ 1

Вам нужно выполнить инструкцию LOAD DATA INFILE с дополнительной опцией

FIELDS OPTIONALLY ENCLOSED BY '"'

Таким образом, все утверждение становится

    LOAD DATA INFILE '<FILENAME>' INTO TABLE <TABLENAME>
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
(col1, col2, col3, ...)

Для дальнейших чтений обратитесь к отличному справочному руководству MySQL. для MySQL 5.1 GA.

Ответ 2

Надеюсь, вы догадались, что делать до сих пор, но если вы не надеетесь, это поможет вам.

У меня возникли проблемы с экспортом Excel 2007 в настраиваемый CSV файл. Я обнаружил, что вы можете изменить терминатор полей здесь: http://www.tek-tips.com/viewthread.cfm?qid=1635599&page=15

Я предпочитаю использовать трубку | характер, так как он необычен, и немного более гибкий при работе с измерениями дюйма дюймов, ногами.