挑战:
许多编程任务需要提取行将数据库表中的数据转换为结构化格式。在 Go 中,database/sql 包提供了 Rows 实例来迭代表行。然而,Rows 的 Scan 方法需要指向已知类型的目标变量的指针,当事先未知列的数量和类型时,这可能具有挑战性。
解决方案:
要将 Rows 实例中的列读入 []string,可以使用以下方法:
示例:
package main import ( "fmt" "io" "database/sql" ) func dumpTable(rows *sql.Rows, out io.Writer) error { colNames, err := rows.Columns() if err != nil { return err } writer := csv.NewWriter(out) writer.Comma = '\t' readCols := make([]interface{}, len(colNames)) writeCols := make([]string, len(colNames)) for i, _ := range writeCols { readCols[i] = &writeCols[i] } for rows.Next() { err := rows.Scan(readCols...) if err != nil { return err } writer.Write(writeCols) } if err = rows.Err(); err != nil { return err } writer.Flush() return nil }
此代码允许您从 Rows 实例中读取列并将其转换为 [] 字符串以进行进一步处理.
以上是如何将 Go SQL 行实例中的列值提取到 [] 字符串中?的详细内容。更多信息请关注PHP中文网其他相关文章!