0
我有包含像这样切片字段的结构,现在我想收集来自SQL查询的列到这些片扫描数据库列与片结构
type StructOfSlices struct {
Column1 []string
Column2 []string
}
有没有更简单/更可扩展/有效的方式来做到这一点比以下?
在这里,我首先要创建结构的 “单一” 的版本...
type StructSingle struct {
Column1 string
Column2 string
}
var s StructOfSlices
rows, _ := db.Query("SELECT column1, column2 FROM table")
...然后扫描每个单独的单一结构...
for rows.Next() {
var single StructSingle
db.Scan(&single.Column1, &single.Column2)
s.Column1 = append(s.Column1, single.Column1)
s.Column2 = append(s.Column2, single.Column2)
}
...和然后附加到片结构
另一种解决方案是使用自定义类型('[] string')来实现'sql.Scanner'接口,其中'Scan'函数会附加结果。这种情况可能有点过分。 – yazgazan
这将工作!这看起来像是更多的工作/复杂性,再加上它在阅读实际发生的代码时不那么清晰。但是,如果真实情况比问题中的例子更复杂,则可能需要这样做。 – Adrian