如何使用 Golang 的 GORM 从 Postgresql 数据库中获取数组?
How to get an array from Postgresql database using Golang's GORM?
我正在尝试使用 Golang 的 jinzhu GORM 从 Postgresql 数据库中获取多个值。
我的查询可以 return none,一个或多个值。我希望将它们保存到一个数组中
这是代码片段:
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)
}
我没有从查询中得到任何信息。
我究竟做错了什么?
谢谢!
这是我的数据库查询中的拼写错误。列名错误。
Cerise Limon 的建议很有帮助。
如果有人遇到这个问题,只需检查 Go's Error Handling 并使用 log.Fatal
我正在尝试使用 Golang 的 jinzhu GORM 从 Postgresql 数据库中获取多个值。 我的查询可以 return none,一个或多个值。我希望将它们保存到一个数组中 这是代码片段:
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)
}
我没有从查询中得到任何信息。 我究竟做错了什么? 谢谢!
这是我的数据库查询中的拼写错误。列名错误。 Cerise Limon 的建议很有帮助。 如果有人遇到这个问题,只需检查 Go's Error Handling 并使用 log.Fatal