如何在GoLang的结构数组中分配一组行(从数据库中检索)?

时间:2018-04-03 09:25:15

标签: postgresql go

我正在尝试从postgresql中检索一组行并尝试将其分配给结构数组。我的代码是这样的:

var test []Demo
    err := sqlx.Get(db,&test, `
                    select *
                    from demo
                    where id = $1`,
                    5,
            )
            if err != nil {
                    fmt.Println("Error",err)
                    fmt.Println("DatabaseExtraction Error")
                    return nil, errors.Wrap(err, "select error")
            } else {
                    fmt.Println("No Extraction Error")
            }

我有这样的结构:

type Demo struct {
        ID         int64         `db:"id"`
        Name       string        `db:"name"`
}

但我收到这样的错误 错误可扫描目标类型切片,结果中包含> 1列(2)(代码:2) 如果我用var test Demo替换var test [] Demo,我也不会收到任何错误。

1 个答案:

答案 0 :(得分:2)

如果您调用Get,则只需要返回一行。如果要选择多行,请使用“选择”并将指针传递给切片。例如:

var rows []Demo
err := sqlx.Select(&rows, `SELECT * FROM "demo"`)
// ...