我最近在Golang中一直在努力解决SQL NULL值问题。尝试使用Decode()
和sql.NullString
解组JSON对象失败后,我在StackOverflow上找到了这个答案:
Assigning null to JSON fields instead of empty strings in Golang
使用字符串指针的解决方案似乎与Decode()和nil值完美配合。那么sql.NullString
和*string
之间有什么区别?
这只是零检查吗?
答案 0 :(得分:7)
SQL具有与Golang不同的空值。
如果你看一下sql.NullString
的定义,那就是你得到的:
type NullString struct {
String string
Valid bool // Valid is true if String is not NULL
}
如您所见,sql.NullString
是一种表示来自SQL的空字符串的方式(对应于" NULL")。
另一方面,nil *string
是指向nil的字符串的指针,因此两者是不同的。