簡體   English   中英

將數組類型的DB字段掃描到Golang中的數組/切片中

[英]Scan array typed DB field into array/slice in Golang

tl; 博士

我有一個SQL表users ,其中包括一個數組字段。 如何在golang中將其掃描到變量? 我的方法:

var id        int
var username  string
var activites []string
row := db.QueryRow("SELECT id, username, activities FROM users WHERE id = 1")
err := row.Scan(&id, &username, &activites)

適用於ID,用戶名。

正如@mkopriva所指出的那樣,可以使用StringArray方法或更靈活的Array方法(因為它接受一個接口作為參數)來完成此任務,它們都可以在"github.com/lib/pq"包中找到。

順便說一句,使用准備好的語句也是一種好習慣。

完整示例:

var id int
var username string
var activities []string

sqlStatement := `
    SELECT
        id,
        username, 
        activities 
    FROM 
        users 
    WHERE 
        id = $1
`

stmt, err := db.Prepare(sqlStatement)
if err != nil {
    // handle err
}

defer stmt.Close()

row := stmt.QueryRow(1)

err = row.Scan(
    &id,
    &username,
    pq.Array(&activities) // used here
)

if err == sql.ErrNoRows {
    // handle err
}

if err != nil {
    // handle err
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM