探索Go 的SQL 套件中的即席查詢
雖然文件顯示使用SQL 套件在Go 中需要了解列數和查詢資料時類型,這並不嚴格正確。 sql.Rows 類型為靈活且即席的 SQL 查詢提供了解決方案。
動態列元資料擷取
sql.Rows 中的 Columns 方法提供了以下清單:結果列名稱。這允許您動態確定任意查詢傳回的列數。
掃描未知資料類型
Scan 方法支援將未知類型的值掃描到任一原始位元組切片 (*[]byte) 或 interface{} 值。這使您能夠檢索列數據,而無需預先定義其類型。
使用即席查詢
結合這些技術,您可以執行即席查詢並擷取資料轉換為介面{}值的切片:
<code class="go">columnNames, err := rows.Columns() if err != nil { // Handle error } 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 { // Handle error }</code>
此後,列切片將包含結果行中所有列的解碼值。透過利用 Columns 和 Scan 方法,您可以有效地處理 Go 的 SQL 套件中的即席查詢。
以上是如何在Go的SQL包中查詢未知列類型的資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!