我的查询:
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_id
的1922
更新为1922
。参见官方的reference。关于mysql - PHP MySQL INSERT ON DUPLICATE KEY UPDATE不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53673350/