GORM gorm 执行原生SQL ,如何获取结果集?

elone · 2018年08月07日 · 最后由 viewer 回复于 2018年08月24日 · 3538 次阅读

有一段比较特殊的数据 使用的是 postgresql jsonb 来存储,然后我构建一段原生 SQL 来执行查询 ,现在不太清楚如何获得查询结果,因为查询出来的字段是不确定的。

想问问,gorm 能不能 scan 到一个 map 上去?

type DataTest struct {
    BaseModel
    Data     postgres.Jsonb
}


queryStr = `select ` + queryStr + ` from ` + TABLENAME + ` t ` +
        ` join lateral jsonb_array_elements(t.data) obj(value) on ` +
        ` obj.value->>'id' = '` + util.Uint2Str(userID) + `' where data @> '[{"id":` + util.Uint2Str(userID) + `}]';`

    rows, _ := DB.Self.Raw(queryStr).Rows() // (*sql.Rows, error)
    defer rows.Close()

    d := &DataTest{}
    for rows.Next() {
        rows.Scan(&d.Data)  //这样是无法得到结果的,不知道应该怎么操作。
    }

原生 sql 可以正常查询,求助。

更多原创文章干货分享,请关注公众号
  • 加微信实战群请加微信(注明:实战群):gocnio
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册