MySQL插入,除非col1和col2都相同然后更新另一列

时间:2012-02-11 00:10:25

标签: php mysql

例如......

我的表设置为gameid - userid - rating

当有人提交评级时,我希望它进行插入。但是,如果userid和gameid已经在一起......我希望它只是更新评级。

但是,如果该用户ID可能只是与另一个gameid配对,则可以继续进行并创建一个新行。

我确信这是在那里,我只是不知道如何说出我想要做的事。

2 个答案:

答案 0 :(得分:3)

(gameid, userid)上创建一个复合UNIQUE INDEX,然后使用如下查询:

INSERT INTO `table` (`gameid`, `userid`, `rating`)
VALUES (..., ..., ...)
ON DUPLICATE KEY UPDATE `rating` = ...

请参阅http://dev.mysql.com/doc/refman/5.1/en/insert-on-duplicate.html

答案 1 :(得分:0)

您正在寻找MySQL的REPLACE INTO功能。文档在这里:http://dev.mysql.com/doc/refman/5.0/en/replace.html