插入如果DNE else更新Mysql行

插入如果DNE else更新Mysql行,mysql,Mysql,我试图告诉我们“关于重复密钥更新”,但它不断添加新行,而不是更新 INSERT INTO favorites (userid, topicid) VALUES ('2', '50') ON DUPLICATE KEY UPDATE active = 0; “我的收藏夹”表设置如下: favoritesid (AI) userid topicid active (boolean) 如果userid和topicid已经存在(它们都在同一行中),那么我只想将active更改为0 这可能吗?要在重

我试图告诉我们“关于重复密钥更新”,但它不断添加新行,而不是更新

INSERT INTO favorites (userid, topicid) 
VALUES ('2', '50')
ON DUPLICATE KEY UPDATE
active = 0;
“我的收藏夹”表设置如下:

favoritesid (AI)
userid
topicid
active (boolean)
如果userid和topicid已经存在(它们都在同一行中),那么我只想将
active
更改为0


这可能吗?

要在重复键上点击
键必须在插入之前存在。如果没有唯一的钥匙在那里,它不会帮助你使用它


添加一个唯一的键,或者在插入之前,您必须先查询以确定您的值是否已存在于表中。

要在重复键上点击
该键必须在插入之前存在。真的是这样吗?字段真的是唯一键(主键、唯一索引)吗?我想说不是。在单个查询中有没有其他方法可以做到这一点,而它们不是唯一键?如果没有唯一键,它将不会帮助您对重复键使用
。添加一个唯一的键,或者在插入之前,您必须先查询以确定您的值是否已经存在于表中。好的,谢谢,我计划执行后一步。