如何在sqlx中增加字段值

时间:2017-11-19 08:38:55

标签: go sqlx

在Go应用程序中,使用sqlx包和mysql数据库,我想更新表user并将其posts字段增加1:

err = shared.Dbmap.Exec("UPDATE user SET posts=posts+1 WHERE id=?", userId)
if err != nil {
    log.Println(err)
    return
}

但是在编译时我得到:

  

单值上下文中的多值shared.Dbmap.DB.Exec()

我看了the docs,看不到相关的例子。

我该如何解决?

1 个答案:

答案 0 :(得分:2)

这是阅读消息multiple-value shared.Dbmap.DB.Exec() in single-value context

的方法
  • shared.Dbmap.DB.Exec()有多个值
  • 您正尝试在单值上下文中使用它

在您的代码中,您有err = shared.Dbmap.Exec(...)

在作业的左侧有一个值, 在右侧有多个。

查看docsExec(...)函数返回2个值, 但是你将它分配给一个值。

像这样写:

_, err = shared.Dbmap.Exec("UPDATE user SET posts=posts+1 WHERE id=?", userId)