英文:
How to handle null values in gorp Select
问题
我正在尝试按照以下方式从数据库中获取用户:
var users []User
_, err := dbMap.Select(&users, "select id,username,acctstarttime,acctlastupdatedtime,acctstoptime from accounting order by id")
在这里,我使用了 gorp。当存在空值时,会抛出异常:
Select failed sql: Scan error on column index 3: unsupported driver -> Scan pair: <nil> -> *string
如何解决这个问题?我使用 gorp 是因为它可以方便地将输出映射到一个结构体数组中。
英文:
I'm trying to get the users from a DB as follow,
var users []User
_, err := dbMap.Select(&users, "select id,username,acctstarttime,acctlastupdatedtime,acctstoptime from accounting order by id")
Here I'm using gorp. When there are null values present, this throws exception
Select failed sql: Scan error on column index 3: unsupported driver -> Scan pair: <nil> -> *string
How can I solve this issue?. Here I used gorp because of the ease of mapping the output to a struct array.
答案1
得分: 2
将acctstarttime映射为指向该类型的指针,而不是该类型的值。
如果列为空,指针将为nil。
或者你可以使用sql.NullXXX类型,但我通常不喜欢使用它们,因为它们会使其他事情变得奇怪。
英文:
Make whatever acctstarttime maps to a pointer to the type instead of a value of the type.
if the col is null, the pointer will be nil.
that or you can use the sql.NullXXX types, but I usually don't like those since they make everything else weird.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论