【发布时间】:2020-01-26 20:42:34
【问题描述】:
我正在尝试使用 Golang 的 jinzhu GORM 从 Postgresql 数据库中获取多个值。 我的查询可以返回无、一个或多个值。我希望它们保存到一个数组中 这是代码sn-p:
var zones []string
d := db //database
d.Raw(`SELECT
DISTINCT reg.name
FROM
regions reg
LEFT JOIN
ad_regions adreg ON adreg.region_id = reg.id
WHERE adreg.id = ?`, ID).Scan(&zones)
我也试过这样做
var zones []string
rows, _ := d2.Raw(`SELECT
DISTINCT reg.name
FROM
regions reg
LEFT JOIN
ad_regions adreg ON adreg.region_id = reg.id
WHERE adreg.id = ?`, ad.ID).Rows()
defer rows.Close()
for rows.Next() {
var zone string
rows.Scan(&zone)
zones = append(zones, zone)
}
我没有从查询中得到任何信息。 我究竟做错了什么? 谢谢!
【问题讨论】:
-
检查 Rows() 和 Scan() 返回的错误。
-
尝试制作PG数组?喜欢
array_agg(...) from ...? -
尝试在
Raw()之前调用Debug()以显示详细的响应信息 -
感谢大家的帮助 :) 我尝试按照 Cerise Limon 的建议检查 Rows 错误,结果发现是我在数据库中的一个列的拼写错误。一个愚蠢的错误,很抱歉打扰 StackO 社区 :( 感谢您的帮助!P.S. 如果有人遇到这个问题,请听取 Cerise 的建议并使用带有“log.Fatal”功能的blog.golang.org/error-handling-and-go
标签: postgresql go go-gorm