【问题标题】:exporting a table in MySQL with columns that have newline characters在 MySQL 中导出包含换行符的列的表
【发布时间】:2011-05-31 09:37:31
【问题描述】:

我对 SQL 非常缺乏经验,所以应该有一个简单的解决方案来解决我的问题: 我正在将一个表选择到一个逗号分隔的文件中,并且 TEXT 类型的列有换行符,所以当我尝试将我的 csv 导入 Excel 时,它会在换行符后面的每段文本中创建单独的行。

这是我的查询:

SELECT * FROM `db`.`table` INTO OUTFILE 'c:\\result.txt' FIELDS TERMINATED BY ','
ESCAPED BY '\\' OPTIONALLY ENCLOSED BY '"'  LINES TERMINATED BY '\r\n' ;

然后在 Excel 中,我导入为逗号分隔的文件,这会导致包含换行符文本的列出现问题。

感谢任何帮助!

【问题讨论】:

    标签: mysql sql into-outfile


    【解决方案1】:

    Novikov 是正确的,但您也可以在导出时转义换行符。

    SELECT REPLACE(`fieldname1`,'\n','\\n'),`fieldname2` FROM db.table INTO OUTFILE 'c:/result.txt'  FIELDS TERMINATED BY ',' ESCAPED BY '\\' ENCLOSED BY '"' LINES TERMINATED BY '\r\n';
    

    然后,这会将所有换行符替换为文本字符串 '\n' 这可能不是您想要的输出。

    直流

    【讨论】:

      【解决方案2】:

      也许只需将所有内容都用双引号括起来。

      SELECT * FROM db.table INTO OUTFILE 'c:/result.txt'  FIELDS TERMINATED BY ',' ESCAPED BY '\\' ENCLOSED BY '"' LINES TERMINATED BY '\r\n';
      

      【讨论】:

      • 在这种情况下,如果我有一个值为“abc,bcd”的文本字段,则该文本字段将被解析为两个文本字段 abc 和 bcd,因为里面有一个逗号。
      • 引号括起来的字段中的逗号应该被excel忽略。导入 excel 时,请确保将文本限定符设置为“
      猜你喜欢
      • 2012-02-10
      • 2014-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-04
      • 1970-01-01
      • 2021-06-12
      相关资源
      最近更新 更多