【问题标题】:mysql insert/update multi rows in one callmysql一次调用插入/更新多行
【发布时间】:2011-09-28 10:40:49
【问题描述】:

在我的 MySql 表中,我想插入一些行。一些行存在,只应更新这些行。

所以我的表是这样的:

mytable: ID(键)|值(varchar)

我的查询是这样的:

INSERT INTO keycomp_mytable(键,值)值 ("k1","foo"),("k2","bar"),("k3","baz"),("k4","qux")

如果一个键已经存在,比如 k2,那么这个值应该被更新。我该怎么做?

【问题讨论】:

    标签: mysql insert-update


    【解决方案1】:

    查看insert on duplicate 语法。

    请注意,这仅适用于重复值是唯一键或主键(在您的问题中看起来是这种情况)。

    【讨论】:

    • 我已经检查了 INSERT ... ON DUPLICATE KEY UPDATE 语法,但似乎它只涉及一次更新/插入一行...我试过:INSERT INTO keycomp_candidate_score (Id, Value) VALUES ("1","2"),("4","5") ON DUPLICATE KEY UPDATE 但它给出了错误
    • 链接页面包含一个将其用于多个值的示例。请注意,您应该包括哪些字段得到更新。 IE。 INSERT INTO keycomp_candidate_score (Id, Value) VALUES ("1","2"),("4","5") ON DUPLICATE KEY UPDATE Value = VALUES(Value)
    • 完美,Value = VALUES(Value) 是我所缺少的——非常感谢!
    猜你喜欢
    • 2016-08-13
    • 1970-01-01
    • 2017-06-05
    • 2012-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多