将 MySQL 表导出到 .csv 文件

Posted

技术标签:

【中文标题】将 MySQL 表导出到 .csv 文件【英文标题】:Exporting MySQL table to .csv file 【发布时间】:2014-01-14 22:31:17 【问题描述】:

这是我使用 VBA 的第一天。我正在尝试使用 VBA 中的 mysql 查询在 MS Access 中导出 .csv 文件。我试过使用这段代码:

Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim sql As String

Set db = CurrentDb

sql = "SELECT wo_id FROM WorkOrder"

Set rs = db.OpenRecordset(sql)
DoCmd.TransferText acExportDelim, , "rs", "C:\export.csv", True

rs.Close
Set rs = Nothing

这给了我:

运行时错误“3011”:

Microsoft Office Access 数据库引擎找不到对象“rs”。确保对象存在并且正确拼写其名称和路径名

更多信息

我有一个名为 WorkOrder 的 MySQL 表(我想从这里提取数据)。

我错过了什么?

【问题讨论】:

***.com/questions/14700192/… 【参考方案1】:

您只能使用DoCmd.TransferText 导出 MS-Access 对象(表或查询)。如果您有一个名为 qryOutput 的查询,您可以将其导出:

DoCmd.TransferText acExportDelim, , "qryOutput", "C:\export.csv", True

您可以在运行时创建查询(使用db.CreateQueryDef),将其导出并删除。


如果你正在使用 MySQL,也许直接从命令行导出数据会更容易:

c:\> mysql -h YourHost -u YourUser -pYourPassword dbYourDatabase -e"SELECT wo_id FROM WorkOrder" > c:\export.txt

这将使用您的查询结果(包括标题)创建一个制表符分隔的文本文件。

在类 Unix 命令行上,您可以使用 sed 将此输出即时转换为逗号分隔的文本文件:

$ mysql [connectionParameters] -e"select..." | sed 's/\t/,/g' > export.csv

我不知道是否有任何纯 Windows 命令行实用程序来执行此操作。我使用Cygwin 处理这类事情。如果要使用,请务必使用 Cygwin 安装程序安装sed

希望这会有所帮助。

【讨论】:

以上是关于将 MySQL 表导出到 .csv 文件的主要内容,如果未能解决你的问题,请参考以下文章

使用html代码将mysql表导出到csv

MySQL 将多个表中的特定字段导出到一个 csv 文件中?创建表输出

将 JSON 数据从 MySQL 表导出到 CSV

将 mysql 表导出到 csv 中,其中数据在列中包含换行符

如何将csv导入mysql和mysql导出csv

使用 PHP/PDO 将大型 MySQL 表导出为 CSV