如何在sqlx中增加字段值

How to increment field value in sqlx

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

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

然而在编译时我得到:

multiple-value shared.Dbmap.DB.Exec() in single-value context

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

我该如何解决?

消息的阅读方式multiple-value shared.Dbmap.DB.Exec() in single-value context:

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

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

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

查看docsExec(...)函数returns 2个值, 但是你给它赋了一个值。

这样写:

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