Golang の SQL パッケージのアドホック クエリ
ドキュメントで伝えられた第一印象に反して、Golang SQL パッケージは広告を容易にすることができます。 hoc および探索的クエリ。
sql.Rows 型には、結果の列の名前を取得する Columns メソッドがあります。この情報により、不慣れなクエリであっても列の数を決定できます。
さらに、Scan メソッドを使用すると、列の型を事前に知らなくても列の値を取得できます。値を生の形式 (RawBytes) または同等の Go タイプ (interface{}) として保存するためのオプションが提供されます。
Columns メソッドと Scan メソッドの両方を利用し、未知のテーブルまたはクエリからデータを取得するための柔軟なアプローチを構築することができます。たとえば、次のコードは可変引数構文 (...) を使用して列数に動的に適応します。
columnNames, err := rows.Columns() if err != nil { log.Fatalln(err) } columns := make([]interface{}, len(columnNames)) columnPointers := make([]interface{}, len(columnNames)) for i := 0; i < len(columnNames); i++ { columnPointers[i] = &columns[i] } if err := rows.Scan(columnPointers...); err != nil { log.Fatalln(err) }
このコードは、列スライス内の現在の行のデコードされた列値をすべてキャプチャします。テーブル構造または予想される列の型を事前に認識しておくと、ロジックのさらなる最適化が容易になる可能性があります。
以上がGolang の SQL パッケージはアドホック クエリを処理できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。