kan*_*dan 2 mysql file-io select newline
我试图将sql select保存到csv文件中,而不是稍后在excel中打开
错误 :
ERROR 1083 (42000) at line 1: Field separator argument is not what is expected; check the manual
Run Code Online (Sandbox Code Playgroud)
查询是:
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
Run Code Online (Sandbox Code Playgroud)
问题在于"ESCAPED BY"是它应该在描述字段中转义保存在数据库中的新行字符.(我不希望文件中的新字符在打开csv时在excel中创建多行).
Mysql服务器是5.5版.5.0工作正常,但由于在mysql教程中使用"ESCAPED BY",我不明白为什么我在这里遇到问题.
用于在字段中保留换行符的源:http: //dev.mysql.com/doc/refman/5.5/en/select.html
谢谢.
问题是ESCAPED BY子句期望单个字符.根据MySQL手册,语法如下:
[FIELDS
[TERMINATED BY 'string']
[[OPTIONALLY] ENCLOSED BY 'char']
[ESCAPED BY 'char']
]
Run Code Online (Sandbox Code Playgroud)
将ESCAPED BY'""改为ESCAPED BY'''应解决问题.