我正在尝试将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
感谢。
答案 0 :(得分:5)
问题是ESCAPED BY子句期望单个字符。根据MySQL手册,语法如下:
[FIELDS
[TERMINATED BY 'string']
[[OPTIONALLY] ENCLOSED BY 'char']
[ESCAPED BY 'char']
]
将ESCAPED BY'“”改为ESCAPED BY'''应该可以解决问题。