将Sql数据导出到.csv并根据查询为每个表生成单独的.csv文件 [英] Export Sql data to .csv and generate separate .csv files per table based on query

查看:224
本文介绍了将Sql数据导出到.csv并根据查询为每个表生成单独的.csv文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

Currently, I am using Go to access my database. Ideally, I'd like to generate .csv based on the table's name and export data to those files based on the query.

例如,如果我运行了:

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文件,其中每个表中的数据都将生成,然后导出到这两个生成的文件中,这些文件的名称与表的名称相同.

I'd like a .csv file generated for both table 1 and table 2 where data from each table would generate and then export into these two generated files with the same names as the table's names.

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

I know in PHP I can use $fp = fopen(getcwd().'/table1.csv', 'w'); fputcsv($fp, $columns); to generate the .csv files with the table's row names. But, I don't believe go needs continuous duplication of foreah columns to generate separate .csv files.

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

I would like some guidance on exporting and generating sql data to .csv files.

谢谢!

我当前的导入设置是:

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

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

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

Im able to connect to my database without issue, and query my database when initializing the query via rows, _:= db.Query(SELECT * FROM table1 WHERE id = 22)

我能够使用err = sqltocsv.WriteFile("results.csv", rows)

推荐答案

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

使用程序包 encoding/csv 编写CSV文件.

Use package encoding/csv to write a CSV file.

这篇关于将Sql数据导出到.csv并根据查询为每个表生成单独的.csv文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆