原始查詢:
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中文網其他相關文章!