2012-02-06 113 views
2

通常情況下,導出CSV從一個MySQL服務器報告,我連接&在服務器上運行一個查詢,結果保存到一個文本文件,然後導入文件數據導出到CSV文件通過指定要練成使用管道分隔字符分隔列。使用SELECT MySQL查詢

我需要用一個MEDIUMTEEXT列類型,其中包含逗號字符,換行符(\ n)的運行在一個表格的報告。

換行符和逗號符號破錶的佈局。

SELECT `number`,REPLACE(`description`, ',', ''), mr.`dateInserted` FROM 
`mr` WHERE mr.dateInserted >= '2012-01-01' AND mr.dateInserted <= '2012-01-31' 

我通過使用MySQL REPLACE功能,但是,我怎麼才能把結果換行符解決的問題逗號?

回答

1

CHAR(13)是一個回車

CHAR(10)換行

儘量嵌套替換功能最小阻力:)

SELECT 
    `number`, 
    REPLACE(REPLACE(REPLACE(`description`, ',', ''), CHAR(13),''), CHAR(10),''), 
    mr.`dateInserted` 
FROM 
    `mr` 
WHERE 
    mr.dateInserted >= '2012-01-01' 
AND 
    mr.dateInserted <= '2012-01-31' 
2

您可以用查詢做到這一點,這裏是一個例子。

SELECT 
    id, 
    name, 
    email 
INTO 
    OUTFILE '/tmp/result.csv' 
FIELDS TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '"' 
ESCAPED BY ‘\\’ 
LINES TERMINATED BY '\n' 
FROM users WHERE 1 
+0

的路徑我想,我試過了,這種做法的問題是,它保存在本地的文件,這是一個Amazon RDS實例 – aporat 2012-02-06 19:55:31

+0

啊,這太糟糕了。 – thenetimp 2012-02-06 20:00:33