代码之家  ›  专栏  ›  技术社区  ›  The50

重复密钥更新时的php mysql insert不起作用

  •  0
  • The50  · 技术社区  · 6 年前

    我的疑问是:

    INSERT INTO `table` (`article_id`, `score_count`) VALUES (1922, '{\"1\":3,\"2\":2,\"3\":10,\"4\":2,\"5\":1}') ON DUPLICATE KEY UPDATE `article_id`= 1922
    

    我的文章id列被设置为主键。运行此命令后,将插入0行而不进行更新。

    1 回复  |  直到 6 年前
        1
  •  2
  •   maio290    6 年前
    INSERT INTO `table` (`article_id`, `score_count`) 
    VALUES (1922, '{\"1\":3,\"2\":2,\"3\":10,\"4\":2,\"5\":1}') 
    ON DUPLICATE KEY 
    UPDATE `score_count`= '{\"1\":3,\"2\":2,\"3\":10,\"4\":2,\"5\":1}'
    

    因为你不想更新主键。

    ON DUPLICATE KEY UPDATE 如果找到重复的键,则将指定的列更新为值。你在更新 article_id 已经是 1922 一千九百二十二 . 见官员 reference .