在多列上的DUPLICATE KEY UPDATE-like行为

时间:2013-04-27 19:41:40

标签: php mariadb

我有一张这样的表:

id | userid | commentid | value
-------------------------------

每位用户都可以投票一次。值可以在-1和1之间。表模型是否有一种简单的方法可以在一个查询中更改此投票,而无需先检查EXISTS()?我已经考虑过像这样的哈希列

MD5(CONCAT(userid, commentid))

但有没有更好的解决方案?

1 个答案:

答案 0 :(得分:3)

只需使用userid + commentid上的唯一键即可使用ON DUPLICATE KEY UPDATE。

INSERT INTO `yourTable` (
  `userid`,
  `commentid`,
  `value`
) VALUES (
  x,
  y,
  z
) ON DUPLICATE KEY UPDATE
  `value` = z