使用SELECT mysql查询将数据导出到CSV文件

时间:2012-02-06 19:43:09

标签: mysql sql

通常,为了从mysql服务器导出CSV报告,我连接&在服务器上运行查询,将结果保存到文本文件中,并通过指定使用竖线分隔字符分隔列来将文件导入excel。

我需要在MEDIUMTEEXT列类型的表上运行报告,该列包含逗号字符和换行符(\ n)。

换行符和逗号符号打破了表格布局。

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

我使用MySQL REPLACE函数解决了逗号问题,但是,如何从结果中删除换行符?

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

您还可以使用“view”和“mysqldump”的组合。

http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html

答案 2 :(得分: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'