元のクエリ:
Go SQL ドキュメントには、データベースからのデータには、列数とデータ型に関する静的な知識が必要です。これにより、アドホック クエリと動的テーブル構造の処理に関する懸念が生じます。
回答:
Rows.Scan() が固定パラメータを必要とするのは事実ですが、sql.Rows type は、列名を動的に取得するための Columns() メソッドを提供します。さらに、Scan() メソッドは次のオプションをサポートしています。
解決策:
これらの機能を組み合わせることで、アドホック クエリと動的テーブル構造をサポートする柔軟なコードを作成できます:
<code class="go">columnNames, err := rows.Columns() if err != nil { // Handle error } columns := make([]interface{}, len(columnNames)) columnPointers := make([]interface{}, len(columnNames)) for i := range columnNames { columnPointers[i] = &columns[i] } if err := rows.Scan(columnPointers...); err != nil { // Handle error } // columns slice now contains decoded column values for the current row</code>
追加のテーブル情報がある場合は、必要に応じてロジックを最適化できます。
以上がGo の SQL パッケージは動的クエリとテーブル構造を処理できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。