mysql - 扫描错误 : unsupported Scan, 存储 driver.Value type <nil> into type *string

标签 mysql go

当我尝试从 mysql 数据库中获取没有照片的文章时:

func ArticlesAllText() ([]Article, error) {
    var err error
    var result []Article
    err = database.SQL.Select(&result, "SELECT * FROM Article WHERE photo IS NULL")
    if err != nil {
        log.Println(err)
    }
    return result, standardizeError(err)
}

我明白了

sql: Scan error on column index 10: unsupported Scan, storing driver.Value type into type *string

当字段值为NULL 时。

我该如何解决这个问题?

最佳答案

使用sql.NullString

https://godoc.org/database/sql#NullString

就我个人而言,我讨厌这种解决方案,这就是为什么我规范化我的数据库以便没有 NULL

要么改变

var result []Article

var result []sql.NullString

然后获取这些结果并使用文档中的检查制作[]文章

或者在你的结构中,改变

Photo *string

Photo sql.NullString

并处理它是结构而不是 *string

的烦恼

感谢 ATN,请参阅此处获取指南 https://medium.com/aubergine-solutions/how-i-handled-null-possible-values-from-database-rows-in-golang-521fb0ee267

关于mysql - 扫描错误 : unsupported Scan, 存储 driver.Value type <nil> into type *string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44891030/

相关文章:

go - 如何在 computeService.Zones.List(project) Google Cloud Platform API 中添加过滤器

mysql - 使用范围和多重联接优化 MySQL 查询

mysql计算新列的出现次数

go - 在 mgo 中定义 MongoDB 架构/集合

go - 带 Docker 的静态 Go 二进制文件 - 找不到入口点

jquery - ajax如何从golang代码中获取数据?

SQLBoiler ORM,如何在没有绑定(bind)的情况下执行原始查询?

Mysql:查找具有最匹配起始字符的字符串

php - MySQL、PHP - 表单帮助

php - 使用php和mysql以json格式进行分类多级显示