2012-02-06 77 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