2014-02-05 33 views
2

我試圖挽救一個SQL SELECT成csv文件比我將稍後在Excel中打開MySQL的選擇爲CSV逃逸換行符錯誤

錯誤:

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工作正常,但由於「ESCAPED BY」在mysql教程中使用,我不明白爲什麼我在這裏遇到問題。

源用於保持領域內換行: http://dev.mysql.com/doc/refman/5.5/en/select.html

感謝。

回答

5

問題是ESCAPED BY子句期待單個字符。每MySQL手冊,語法如下:

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

改變ESCAPED BY「‘’」到ESCAPED BY「「」應該解決的問題

+0

感謝白癡的我...使用的兩個。在之前版本的mysql服務器中使用雙引號,並且工作,沒有想到。乾杯。 – kandan