When I try to select Articles from a mysql database where the value of the column photo is NULL
i get
sql: Scan error on column index 10: unsupported Scan, storing driver.Value type into type *string
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)
}
How can I fix this?
Use sql.NullString
.
https://godoc.org/database/sql#NullString
Personally, I hate this solution, which is why I normalize my DB so that there are no NULL
s.
Either change
var result []Article
To
var result []sql.NullString
Then take those results and make a []Article
using the checks from the documentation.
Or in your struct, change
Photo *string
To
Photo sql.NullString
And deal with the annoyance of it being a struct instead of a *string
Thanks to ATN, see here for a guide https://medium.com/aubergine-solutions/how-i-handled-null-possible-values-from-database-rows-in-golang-521fb0ee267