I am pretty inexperienced in SQL, so there should be a simple solution to my problem: I am selecting a table into a comma-separated file, and the column of type TEXT has newline characters, so when I try to import my csv into Excel, it creates separate rows each piece of text following a newline character.
Here is my query:
SELECT * FROM `db`.`table` INTO OUTFILE 'c:\\result.txt' FIELDS TERMINATED BY ','
ESCAPED BY '\\' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\r\n' ;
and then in Excel I import as a comma separated file which causes issues for column that has text with newline characters.
any help is appreciated!
Just enclose everything in double quotes perhaps.
SELECT * FROM db.table INTO OUTFILE 'c:/result.txt' FIELDS TERMINATED BY ',' ESCAPED BY '\\' ENCLOSED BY '"' LINES TERMINATED BY '\r\n';
Novikov is correct but you could also escape the new line characters while exporting.
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';
This will then replace all the new line characters with the text string '\n' This may not be what you want in the output though.
DC
来源:https://stackoverflow.com/questions/4543185/exporting-a-table-in-mysql-with-columns-that-have-newline-characters