2010-12-28 2 views
6

Я довольно неопытный в SQL, поэтому должно быть простое решение моей проблемы: Я выбираю таблицу в файл с разделителями-запятыми и столбец типа TEXT имеет символы новой строки, поэтому, когда я пытаюсь импортировать CSV в Excel, он создает отдельные строки для каждого фрагмента текста, следующего за символом новой строки.Экспорт таблицы в MySQL с столбцами, у которых есть символы новой строки

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

SELECT * FROM `db`.`table` INTO OUTFILE 'c:\\result.txt' FIELDS TERMINATED BY ',' 
ESCAPED BY '\\' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\r\n' ; 

, а затем в Excel импортировать как разделенный запятыми файл, который вызывает проблемы для столбца, который имеет текст с символами новой строки.

любая помощь приветствуется!

ответ

4

Просто включите все, что возможно в двойных кавычках.

SELECT * FROM db.table INTO OUTFILE 'c:/result.txt' FIELDS TERMINATED BY ',' ESCAPED BY '\\' ENCLOSED BY '"' LINES TERMINATED BY '\r\n'; 
+0

в этом случае, если у меня есть текстовое поле, которое имеет значение «ABC, BCD» это текстовое поле будет анализироваться в два текстовых поля ABC и BCD, так как есть запятая внутри. – Lenik

+1

запятая внутри поля, заключенного в цитату, должна игнорироваться excel. При импорте в excel убедитесь, что у вас есть спецификатор текста, – DeveloperChris

1

Новиков прав, но при экспорте можно также избежать появления новых символов линии.

SELECT REPLACE(`fieldname1`,'\n','\\n'),`fieldname2` FROM db.table INTO OUTFILE 'c:/result.txt' FIELDS TERMINATED BY ',' ESCAPED BY '\\' ENCLOSED BY '"' LINES TERMINATED BY '\r\n'; 

Это будет заменить все символы новой строки с текстовой строкой «\ п» Это не может быть то, что вы хотите на выходе, хотя.

DC

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