登录
首页 >  Golang >  Go问答

Golang将NULL插入sql而不是空字符串

来源:Golang技术栈

时间:2023-04-06 18:30:06 280浏览 收藏

哈喽!大家好,很高兴又见面了,我是golang学习网的一名作者,今天由我给大家带来一篇《Golang将NULL插入sql而不是空字符串》,本文主要会讲到golang等等知识点,希望大家一起学习进步,也欢迎大家关注、点赞、收藏、转发! 下面就一起来看看吧!

问题内容

我正在尝试使用 golang 将数据插入到 mysql 数据库中。在我的值采用空字符串的情况下,我想插入一个空值。如何调整以下内容以插入空值而不是空字符串?谢谢。

_, err := m.Db.Exec(`INSERT INTO 
                         visitor_events
                         (type, 
                          info, 
                          url_path, 
                          visitor_id, 
                          created_at, 
                          domain)
                          VALUES
                          (?, ?, ?, ?, ?, ?)`,
                          m.SaveEventType(ve), ve.EventInfo, m.SaveURLPath(ve.UrlPath), ve.VisitorId, time.Now().UTC(), ve.Domain)

正确答案

在我的代码中,我有一个将字符串转换为sql.NullString

func NewNullString(s string) sql.NullString {
    if len(s) == 0 {
        return sql.NullString{}
    }
    return sql.NullString{
         String: s,
         Valid: true,
    }
}

然后,每当我使用Exec该函数时,我都会将可能为 NULL 的字符串包装在数据库中NewNullString

db.Exec(`
  insert into
      users first_name, last_name, email
      values (?,?,?)`,
  firstName,
  lastName,
  NewNullString(email),
)

以上就是《Golang将NULL插入sql而不是空字符串》的详细内容,更多关于golang的资料请关注golang学习网公众号!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表