2014-09-11 4 views
0

Я пытаюсь импортировать файл csv, разделенный вкладками.MySql Импортировать странное поведение

Вот мой запрос

LOAD DATA LOCAL INFILE 'c:/news.csv' 
INTO TABLE news 
FIELDS TERMINATED BY '\t' 
LINES TERMINATED BY '\r' 
(url, storyid, title, date, details, category, author); 

Что происходит только загружается первый столбец (URL).

Остальные показывает NULL. Я попробовал строки, завершенные \n. Тот же результат.

Любые советы?

Table structure for table `news` 
-- 

CREATE TABLE IF NOT EXISTS `news` (
`url` varchar(62) DEFAULT NULL, 
`storyid` int(15) DEFAULT NULL, 
`title` varchar(255) DEFAULT NULL, 
`date` date DEFAULT NULL, 
`details` longtext, 
`category` varchar(255) DEFAULT NULL, 
`author` varchar(110) DEFAULT NULL 
) 
+1

Какова структура вашего файла excel? Первый столбец, за которым следуют пустые столбцы? – Sliver2009

+0

Привет, я поделился им здесь: http://www.fast-files.com/getfile.aspx?file=78862 –

+0

А так все на новой линии, что происходит, если вы используете '\ r \ n'? – Sliver2009

ответ

1

Это зависит от конкретного формата файла .csv, но Инструкции для пользователей Windows .csv формат я всегда использую

LINES TERMINATED BY '\r\n' 

также (опять-таки в зависимости от данных) попробовать

FIELDS ESCAPED BY '\\' TERMINATED BY '\t' OPTIONALLY ENCLOSED BY '\"' 

Если вы» неуверенный в точном характере данных, иногда лучше просмотреть его в шестнадцатеричном виде, чтобы увидеть, как строки действительно прекращаются. Я использую Hexedit - http://www.hexedit.com/

Надеюсь, это поможет. Dermot

+0

Привет, Вы правы, оказалось, что это действительно было разделено запятой. –

0

Как я уже сказал в комментариях, вы можете использовать '/ r/n' для новой строки.

Однако ваш файл csv содержит только 1 столбец, а именно полную строку текста. Возможно, именно поэтому заполняется только первый столбец таблицы, а остальное - null.

+0

Это должен быть комментарий, а не ответ –

0
LOAD DATA LOCAL INFILE 'c:/news.csv' 
INTO TABLE news 
COLUMNS TERMINATED BY ',' 
LINES TERMINATED BY '\r\n' 
(url, storyid, title, date, details, category, author) 

Это сработало.

Оказалось, что, несмотря на то, что он выглядит раздельно, он разделяется запятой. Дермот был прав, что вам нужно просмотреть его в шестнадцатеричном представлении, чтобы увидеть, как он действительно разграничен.

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