mysql选择进入csv转义换行错误

时间:2014-02-05 13:46:29

标签: mysql select newline file-io

我正在尝试将sql select保存到csv文件中,而不是稍后在excel中打开

错误:

ERROR 1083 (42000) at line 1: Field separator argument is not what is expected; check the manual

查询是:

SELECT 'Description' 
union
SELECT coalesce(replace(d.description,'\r\n','\n'),'') 
INTO OUTFILE \"$FILE_PATH$FILE_NAME\"
FIELDS ESCAPED BY '""' TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n'
FROM data d

问题在于“ESCAPED BY”是它应该在描述字段中转义保存在数据库中的新行字符。 (我不希望文件中的新字符在打开csv时在excel中创建多行)。

Mysql服务器是5.5版。 5.0工作正常,但由于在mysql教程中使用“ESCAPED BY”,我不明白为什么我在这里遇到问题。

用于在字段中保留换行符的来源: http://dev.mysql.com/doc/refman/5.5/en/select.html

感谢。

1 个答案:

答案 0 :(得分:5)

问题是ESCAPED BY子句期望单个字符。根据MySQL手册,语法如下:

[FIELDS
    [TERMINATED BY 'string']
    [[OPTIONALLY] ENCLOSED BY 'char']
    [ESCAPED BY 'char']
]

将ESCAPED BY'“”改为ESCAPED BY'''应该可以解决问题。

相关问题