微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

mysql – ON DUPLICATE KEY UPDATE – 添加到现有值

我有SQL(MySQL 5.x)查询,如:

           INSERT INTO table (val1),
           ON DUPLICATE KEY UPDATE `val1` = VALUES(`val1`)

这很好用.

现在我需要用VALUES(val1)ruby变量的总和来更新它.

           INSERT INTO table (val1),
           ON DUPLICATE KEY UPDATE `val1` = VALUES(`val1`) + #{ruby_variable}

抛出一个错误.

(Ruby这里只是一个例子,实际上我需要求和VALUES(val1)整数)

怎么做?

解决方法:

fine manual的顶部,你会看到一个你正在尝试做的事情的例子:

INSERT INTO table (a,b,c) VALUES (1,2,3)
  ON DUPLICATE KEY UPDATE c=c+1;

所以你正在寻找这个:

connection.execute(%Q{
    INSERT INTO table (val1) VALUES(#{connection.quote(x)})
    ON DUPLICATE KEY UPDATE `val1` = `val1` + #{connection.quote(ruby_variable)}
})

其中x是您要插入的内容,ruby_variable是您在重复时要添加到val1的内容. INSERT需要一个VALUES,而不是ON DUPLICATE.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐