我正在构建一个Web应用程序,用户可以在其中回答问题。我正在尝试运行一个查询,其中将这些答案插入表中,但用户只能回答一次相同的问题。就我而言,查询必须检查question_id和reply_user的重复项。 (reply_id已被定义为主键)。

例如,当我在表中有答案:question_id = 1和reply_user = John时,John无法再对question_id 1进行答复。但是其他用户当然可以。

我目前正在运行:

INSERT INTO replies (question_id, reply_user, reply_content, reply_anwer)
  VALUES (:questionid, :replyuser, :replycontent, :replyanswer)
  SELECT question_id, reply_user FROM replies WHERE NOT EXISTS (
    SELECT question_id FROM replies
      WHERE question_id = question_id AND reply_user = reply_user
  )


我尝试了WHERE NOT EXISTS,但找不到解决方案。

谢谢你的帮助

最佳答案

您需要提交unique 2个文件:

ALTER TABLE `replies` ADD UNIQUE (`question_id`,`reply_user`);


然后使用此查询:

INSERT INTO replies (question_id, reply_user, reply_content, reply_anwer)
VALUES (:questionid, :replyuser, :replycontent, :replyanswer)


如果question_idreply_user存在查询未运行,则运行。

关于php - SQL:在2列中检查重复项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37076652/

10-12 01:57