課題:
多くのプログラミング タスクでは行の抽出が必要ですデータベーステーブルのデータを構造化フォーマットに変換します。 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 インスタンスから列を読み取り、その後の処理のために列を []string に変換できます。 .
以上がGo SQL行インスタンスから列値を[]文字列に抽出する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。