将Sql数据导出到.csv,并根据查询在每个表中生成单独的.csv文件

时间:2018-07-08 00:15:24

标签: mysql go export-to-csv

当前,我正在使用Go访问我的数据库。理想情况下,我想基于表的名称生成.csv并根据查询将数据导出到那些文件。

例如,如果我运行了:

select t1.*,t2.* from table1 t1 
inner join table2 t2 on t2.table_1_id = t1.id
where t1.linking_id = 22

我想要为表1和表2生成一个.csv文件,其中每个表中的数据都将生成,然后导出到这两个生成的文件中,它们的名称与表的名称相同。

我知道在PHP中我可以使用$fp = fopen(getcwd().'/table1.csv', 'w'); fputcsv($fp, $columns); 生成具有表行名的.csv文件。但是,我认为go不需要连续复制foreah列来生成单独的.csv文件。

我想要一些有关将sql数据导出并生成.csv文件的指导。

谢谢!

我当前的导入设置为:

import ( "database/sql" _ "github.com/go-sql-driver/mysql" "github.com/joho/sqltocsv" )

我能够毫无问题地连接到我的数据库,并在通过rows, _:= db.Query(SELECT * FROM table1 WHERE id = 22)初始化查询时查询我的数据库

我可以使用err = sqltocsv.WriteFile("results.csv", rows)将查询数据写入到现有的.csv文件中

1 个答案:

答案 0 :(得分:1)

  1. 使用循环遍历rows以获取每一行

  2. 使用软件包encoding/csv编写CSV文件。