首頁 > 後端開發 > Golang > 將資料庫行讀入映射字串

將資料庫行讀入映射字串

WBOY
發布: 2024-02-09 13:24:18
轉載
533 人瀏覽過

將資料庫行讀入映射字串

php小編小編小新將資料庫行讀入映射字串是一種常見的資料處理技術。透過將資料庫表的行資料讀取並映射到字串中,可以方便地進行資料操作和處理。這種技術在Web開發中經常用於將資料庫查詢結果轉換為可讀性更高的字串格式,方便展示和使用。它不僅能提高資料處理的效率,還能簡化程式碼邏輯,讓程式更加簡潔、易於維護。將資料庫行讀入映射字串是一項重要的技能,對於開發者來說是必備的。

問題內容

我想從一個簡單的 sql 表中讀取結果,如下所示

customer key
A 12345
B 6789

現在,我想建構一個 map[string]string ,它的鍵值對等於行值,如下所示:

map[a:12345, b:6789]
登入後複製

但是,我在從查詢結果中取出值並動態建立鍵值對時遇到了麻煩。我將提供程式碼的粗略輪廓(sql 連接不是問題,我已經弄清楚了)

import "database/sql"

func main() {

    // some code to connect to mssql...

    db, _ := sql.open("mssql", connstring)

    stmt := "select customer, key from tbl"
    rows, _ := db.query(stmt)
    defer rows.close()

    data := make(map[string]string)
    for rows.next() {
        // need help here grabbing each row pair and adding them to my map...
    }
}
登入後複製

我也願意嘗試使用空結構來執行此操作,其中欄位成為結果集的第一列(動態),值成為結果集的第二列。

解決方法

您可以將值暫時儲存在兩個變數中,然後將它們儲存在地圖中:

func main() {
    stmt := "SELECT customer, key from tbl"
    rows, _ := db.Query(stmt)
    defer rows.Close()

    data := make(map[string]string)
    var (
        consumer string
        key string
    )
    for rows.Next() {
        if err := rows.Scan(&consumer, &key); err != nil {
            // Handle err
        }

        data[consumer] = key 
    }

    for k, v := range data {
        fmt.Println(k, v)
    }
    // "A" "12345"
    // "B" "6789"

}
登入後複製

請注意,consumerkey 變數是在循環外部分配的,因此我們可以重複使用它們。即使值是空字串,變數也會在每次迭代時被覆蓋。

以上是將資料庫行讀入映射字串的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:stackoverflow.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板