我遇到一个问题,如果组合(poll_id,user_id,question_id)不存在,我想将值插入表中,否则我想更新列答案。
下表如下:
poll_results poll_id-int(11)| user_id-int(11)| question_id-int(11)| 答案-varchar(100)
我使用以下命令将唯一性设置为(poll_id,user_id,question_id):
ALTER TABLE poll_results ADD UNIQUE INDEX unique_index
(poll_id
,user_id
,question_id
);
当我运行以下查询时,它将首先插入第一个值集,然后使用第二个值集中的值更新答案字段。
将INSERT INTO poll_results(poll_id,user_id,question_id,answer)VALUES(1、1、1,'用户1'),(1、2、1,'用户2')复制到重复键更新answer = VALUES(answer)
我看到的是:
poll_id-用户名-问题ID-答案
1 | 1 | 1 | 用户1
我想看的是:
poll_id | user_id | 问题ID | 回答
1 | 1 | 1 | 用户1
1 | 2 | 1 | 用户2
如何获得最终结果?
该ON DUPLICATE KEY
功能的工作方式取决于任何UNIQUE
类型索引的触发,而不仅仅是您打算触发的类型索引。
删除可能干扰此操作的所有索引,您应该可以。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句