【问题标题】:exporting data to CSV file using SELECT mysql query使用 SELECT mysql 查询将数据导出到 CSV 文件
【发布时间】:2012-02-06 19:43:08
【问题描述】:

通常,要从 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 函数解决了逗号问题,但是,如何从结果中删除换行符?

【问题讨论】:

    标签: mysql sql


    【解决方案1】:

    您可以通过查询来做到这一点,这是一个示例。

    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
    

    【讨论】:

    • 我想我试过了,这种方法的问题是它在本地保存文件,它是一个亚马逊 RDS 实例
    【解决方案2】:

    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'
    

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

      • 非常好!我不知道!
      猜你喜欢
      • 2014-10-20
      • 2017-12-31
      • 1970-01-01
      • 2015-02-01
      • 2018-09-11
      • 2015-11-12
      相关资源
      最近更新 更多