【问题标题】:How to assign a set of rows(Retrieved from a database) in an array of structure in GoLang?如何在 GoLang 的结构数组中分配一组行(从数据库中检索)?
【发布时间】:2018-04-03 19:48:29
【问题描述】:

我正在尝试从 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) 的错误可扫描 dest 类型切片(代码:2) 此外,如果我将 var test []Demo 替换为 var test Demo,我也不会收到任何错误。

【问题讨论】:

    标签: postgresql go


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2016-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-08
      • 2017-11-01
      • 2021-12-05
      • 1970-01-01
      • 2014-07-14
      相关资源
      最近更新 更多