我有一個問題,如果組合(poll_id,user_id,question_id)不存在,我想要插入值到一個表中,否則我想更新列答案。插入表或更新如果存在多個唯一索引(MySQL)
表如下:
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
);
當我運行下面的查詢時,它將首先插入第一個值集,然後用來自第二個值集的值更新答案字段。 (1,1,'User 1'),(1,2,1,'User 2')ON DUPLICATE KEY UPDATE answer = VALUES(1,1,'User 1')答案)
我看到的是:
poll_id - USER_ID - question_id - 答案
1 | 1 | 1 |用戶1
我想看到的是:
poll_id | user_id | question_id |回答
1 | 1 | 1 |用戶1
1 | 2 | 1 |用戶2
我該如何達到最終結果?
你必須在那裏有另一個唯一的索引。你可以將'SHOW CREATE TABLE poll_results'的輸出添加到你的問題中嗎? – tadman 2014-11-03 19:44:34
當我用phpMyAdmin直接在MySQL中運行代碼時,插入了兩條記錄。你是否也在phpMyAdmin中執行代碼? – Barry 2014-11-03 19:46:25
@tadman不知道那個命令。發現在運行SHOW CREATE TABLE查詢後,我實際上在poll_id上有另一個唯一鍵。我刪除了獨特的索引後,它工作正常! – Wesley 2014-11-03 19:56:04