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


MySQL insert into unless col1 and col2 are both the same then update another column

例如。。。

我的表格设置类似于gameid-userid-评级

当有人提交评分时,我希望它插入。但是,如果用户ID和游戏ID已经在一起了。。。我希望它只是更新评级。

但是,如果该用户id只是与另一个游戏id配对,那么就可以继续进行新的一行。

我确信这是存在的,我只是真的不知道如何说出我要做的事情。

(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.

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