目 录CONTENT

文章目录

解决go数据表查询结构体对应字段null问题

Hello!你好!我是村望~!
2023-02-23 / 0 评论 / 0 点赞 / 316 阅读 / 396 字
温馨提示:
我不想探寻任何东西的意义,我只享受当下思考的快乐~

解决go数据表查询结构体对应字段null问题

今天在做项目的时候遇到了这样一个问题!

其实很早之前有遇到过!但是因为没有记录回顾就忽略了!

今天做一个查询用户表的时候遇到了这样的一个错误

converting NULL to string is unsupported

image-20230223194427617

意思是:无法将 Null 值 转为 string!

解决方法:将模型字段的类型定义为指针类型!

package models

// 解决go数据表查询结构体对应字段null问题(sqlx converting NULL to string is unsupported)
// UserModel 用户数据表模型
type UserModel struct {
	UserId   *int64  `db:"user_id" json:"user_id"`
	Username *string `db:"username" json:"username"`
	Avatar   *string `db:"avatar" json:"avatar"`
	Password *string `db:"password" json:"password"`
	Email    *string `db:"email" json:"email"`
	Gender   *int    `db:"gender" json:"gender"`
}

或者使用一个sqlNull[type]的方式也可以

原因: Go是一种强类型的编程语言,许多SQL数据库支持null。

这些null在Go中可能会导致复杂化。

比如在这个例子中,当一个空字符串使用NULL值时,会抛出将NULL转换为字符串不支持的错误。

支持NULL或其他未知数的数据库表列应将其值保存为数据库.sql的Null类型,而不是将SQL查询值保存为基本Go类型。这些类型包括NullString, NullBool, NullInt64, NullFloat64, 和NullTime。

0

评论区