Mysql 是否为两个值插入重复密钥更新?

Mysql 是否为两个值插入重复密钥更新?,mysql,duplicates,Mysql,Duplicates,我的save_列表表包含三列: id, user_id, item_id 质疑 如果用户标识和项目标识都存在,我如何使用在重复密钥更新时插入来更新行 工作代码 INSERT INTO save_list (user_id, item_id) VALUES (?,?) ON DUPLICATE KEY UPDATE user_id = ?, item_id = ? 在它们之间创建一个唯一的复合键 ALTER TABLE tblName ADD UNIQUE unique_index777 (u

我的
save_列表
表包含三列:

id, user_id, item_id
质疑

如果
用户标识
项目标识
都存在,我如何使用
在重复密钥更新时插入
来更新行

工作代码

INSERT INTO save_list (user_id, item_id) VALUES (?,?) ON DUPLICATE KEY UPDATE user_id = ?, item_id = ?

在它们之间创建一个唯一的复合键

ALTER TABLE tblName ADD UNIQUE unique_index777 (user_id,item_id);

您需要将这两个字段定义为复合键,以使更新生效

INSERT INTO foo_table(user_id, item_id, description) ft values (a,b,desc)
ON DUPLICATE KEY UPDATE ft.description=desc

这个问题是相关的:好的。。。添加了它,但我将如何使用它?一旦添加了它,就可以使用
INSERT-in。。在重复密钥更新时
。我刚才给出了一个答案,它将为您提供指向文档的链接等。
$q=$this->db->mysqli->prepare(“在重复密钥更新时插入保存列表(用户id,项目id)值(?))像这样?@DrewPierce并不想从你的答案中抢走风头,但我最近才给出了这个答案,所以我的脑海中充满了新鲜的东西。哈哈。我没有多少风头@McAdam331
INSERT INTO foo_table(user_id, item_id, description) ft values (a,b,desc)
ON DUPLICATE KEY UPDATE ft.description=desc