Если существуют два одинаковых поля, вставьте еще обновление - PullRequest
1 голос
/ 04 февраля 2012

Допустим, у меня есть two поля a и b.

Теперь, допустим, я хочу написать запрос, который обновился бы, если a = 100 AND b = 120, иначе это создаст новое поле.

Также a и b должны быть уникальными друг для друга, я имею в виду, что это может быть два a равно 100 или два b равно 200, но может не может быть больше полей, таких как

a = 100 и b = 120, надеюсь, вы понимаете, о чем я.

1 Ответ

4 голосов
/ 04 февраля 2012

Если у вас есть ограничение 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 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...