D B:
column: name
value: NULL
Run Code Online (Sandbox Code Playgroud)
用gorm从DB中获取记录,然后
var name string
if name != nil {
//
}
Run Code Online (Sandbox Code Playgroud)
出现错误:
invalid operation: name != nil (mismatched types string and nil)
Run Code Online (Sandbox Code Playgroud)
是的,go中int类型使用的是nil,但是这种情况下DB中的值却不是NULL,""所以需要检查null,怎么办?
您应该注意 sql 类型:https ://golang.org/pkg/database/sql/#NullString
只需在 select 语句中使用此类型的变量即可:
var yourstr sql.NullString
db.Select("Select your string", &yourstr)
Run Code Online (Sandbox Code Playgroud)
然后你可以检查它是否有效,如果无效,你可以分配你想要的任何值:
if !yourstr.Valid{
yourstr.String = ""
}
Run Code Online (Sandbox Code Playgroud)
Gorm 中还有一个选择 NullString 的函数:
yourstr := dbmap.SelectNullStr("Select your string")
Run Code Online (Sandbox Code Playgroud)