我有一张包含个人资料的表格。如果有用户#:userId的配置文件,我想更新它。如果该用户没有配置文件,我想插入它。我尝试了这个SQL查询,但它不起作用:
INSERT INTO profiles SET name = :name, website = :website, bio = :bio WHERE user = :userId ON DUPLICATE KEY UPDATE name = :name, website = :website, bio = :bio
'user'是主键
编辑:我在SQL中发现了一个错误,当它看起来像这样时,它运行得很好:
INSERT INTO profiles SET user = :userId, -- <-- mistake was here name = :name, website = :website, bio = :bio ON DUPLICATE KEY UPDATE name = :name, website = :website, bio = :bio
谢谢大家!
答案 0 :(得分:2)
您的INSERT语法不正确(它看起来像是修改后的UPDATE语句)。尝试类似:
INSERT INTO profiles (name, website, bio)
VALUES (:name, :website, :bio)
ON DUPLICATE KEY UPDATE website = :website, bio = :bio;
有关详细信息和示例,请参阅documentation for INSERT ... ON DUPLICATE KEY UPDATE。