【踩坑】Go通过Mysql查询时得到空值报错
前言
Go通过Mysql查询时得到空值报错:sql: Scan error on column index 1, name "": converting NULL to string is unsupported
原因
- 通过sql.Query处理结果时,返回了
null
值,而Go语言中的string
类型不允许为null
值
解决问题
方法一
- 将结构体中的
string
类型改为*string
类型
这种做法的弊端是会导致结构体不通用
方法二
- 将结构体中的
string
类型改为sql.NullString
类型
这种做法的弊端是会导致不能为该属性传递普通string类型的值
方法三
- 将查询SQL的条件从
SELECT 表名.字段名
更改为SELECT COALESCE(表名.字段名, '') AS 字段名