如果存在两个相同的字段,则插入else update

时间:2012-02-03 23:04:23

标签: mysql sql

假设我有two个字段ab

现在假设我想编写一个查询,如果a = 100 AND b = 120它将更新它将创建新字段。

同样ab必须彼此唯一,我的意思是它可以是两个a等于100或两个{{1} }等于b,但不能有更多的字段,如

200 = a100 = b,我希望你明白我的意思。

1 个答案:

答案 0 :(得分:4)

如果您对UNIQUE组合有(a,b)约束,则可以使用INSERT ... ON DUPLICATE KEY UPDATE ...语法来实现此功能。例子:

INSERT INTO TableX
  ( a, b, c, d, e)
VALUES
  ( 100, 200, 1, 2, 3)
ON DUPLICATE KEY UPDATE
  c = VALUES(c)
, d = VALUES(d)
, e = VALUES(e)

INSERT INTO TableX
  ( a, b, c, d, e)
VALUES
  ( 100, 200, 1, 7, 20)
ON DUPLICATE KEY UPDATE
  c = c + 1
, d = d + 1
, e = e + 1