【问题标题】:Exporting an SQL table to CSV with commas escaped?使用转义逗号将 SQL 表导出到 CSV?
【发布时间】:2012-08-05 18:11:55
【问题描述】:

我有一个大型 MySQL 表(8-9k 记录,我正在使用 phpMyAdmin),其中一些值是描述,带有逗号。

我需要将 SQL 表导出为 CSV 格式以在新平台上使用,但我无法终生解决此问题:

当某些字段中有逗号时,数据会被推到下一列,事情就会变得混乱。

我只需要 MySQL 中的 EXACT 表即可成为 CSV。有什么建议和想法吗?

谢谢。

【问题讨论】:

    标签: mysql csv


    【解决方案1】:

    使用这个查询:

    SELECT * INTO OUTFILE 'filename.csv'
    FIELDS TERMINATED BY ','
    OPTIONALLY ENCLOSED BY '"'
    ESCAPED BY '\\'
    LINES TERMINATED BY '\n'
    FROM [tablename]
    

    来源http://www.wausita.com/2011/02/mysql-export-csv/

    【讨论】:

    • 当我用我的表替换 [tablename] 时,此查询为我的表返回一个空集..? Google 不是我的朋友。
    • 您是否将您的表名包含在刻度中?像这样:FROM `tablename`
    【解决方案2】:

    只需转到数据库的导出选项卡。请务必将您的字段括起来。这样会将值包含在 " 中以避免错误的逗号。

    否则,您可以在命令行中使用mysqldump

    或者您可以使用查询导出数据:

    SELECT *
    FROM table
    INTO OUTFILE '/tmp/table.csv'
    FIELDS TERMINATED BY ','
    ENCLOSED BY '"'
    LINES TERMINATED BY '\n'
    

    【讨论】:

    • 如果您阅读我的问题,您会发现我确实在使用 phpMyAdmin,并且我已经从该选项卡中导出。
    • 是的。您错过了包含字段的关键步骤。
    • 我已经用 " 来包围字段;一些描述也有 " ,因此会发生同样的错误。此查询为我的表返回一个空集..
    • 我们无法为您提供准确的代码。归根结底,你的问题在于转义封闭。这些答案之一应该使您走上正确的道路。但是你需要自己做一些工作。
    • 如何通过phpMyAdmin访问outfile?尽管它返回了一个空集,但也许该文件仍然存在填充数据。
    【解决方案3】:

    我的解决方案是从 MySQL 导出为 .xlsx。列完美呈现。使用几个组合的封闭/转义字符无济于事。

    然后我将 .xlsx 保存为 .csv,这很好。

    感谢你们的时间。

    【讨论】:

      猜你喜欢
      • 2014-08-02
      • 1970-01-01
      • 2020-03-17
      • 2012-01-18
      • 2013-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-16
      相关资源
      最近更新 更多