英文:
How to scan SQL array to []int64 in Go?
问题
我正在从Postgres数据库中扫描一个int数组,它以[]uint8
的形式返回。我需要将它们转换为[]int64
,或者如何从数据库中以[]int64
的形式返回它们?在我的查询中,我使用Postgres的Array函数进行选择:Array(col1)
,其中col1是serial类型。
我得到的错误是:
不支持的扫描,将driver.Value类型的`[]uint8`存储到类型`[]int64`中。
英文:
I am scanning an array of int from Postgres DB and it is returning as []uint8
. I need them in []int64
, how can I convert them into []int64
or how can I return them from the DB as []int64
? In my query I am selecting using the Array function in Postgres: Array(col1)
where col1 is serial.
The error I am getting is:
unsupported Scan, storing driver.Value type []uint8 into type []int64
答案1
得分: 8
如果你正在使用github.com/lib/pq
,只需使用Int64Array
。
col1arr := []int64{}
arr := pq.Int64Array{}
err := rows.Scan(&arr)
// ...
col1arr = []int64(arr)
英文:
If you're using github.com/lib/pq
, just use Int64Array
.
col1arr := []int64{}
arr := pq.Int64Array{}
err := rows.Scan(&arr)
// ...
col1arr = []int64(arr)
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论