我的查询:

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


并且我的article_id列设置为主唯一键。运行此命令后,我插入了0行并且没有更新。

最佳答案

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_id1922更新为1922。参见官方的reference

关于mysql - PHP MySQL INSERT ON DUPLICATE KEY UPDATE不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53673350/

10-16 12:47