Как вставить несколько значений в PG с разными предложениями where? - PullRequest
0 голосов
/ 07 июня 2019

Вот как мои данные настроены:

Zone
------
zone_id
value
other_id

У меня будет одинаковое zone_id для всех обновлений. Я только обновляю value, но где other_id отличается в каждом случае.

т.е.: zone_id: 1, [{value: 10, other_id: 12}, {value: 40, other_id: 17}, ...]

Я хочу сделать все это в одном утверждении.

UPDATE zone set value = {value} where zone_id = {id} and other_id = {other}, но я хочу установить несколько value s в одном выражении.

Как мне это сделать? Это возможно?

1 Ответ

0 голосов
/ 07 июня 2019

Я не на 100% уверен, но я думаю, что вы просите установить value условно. Так что-то вроде этого должно работать:

UPDATE zone
SET value = CASE other_id
              WHEN 12 THEN 10
              WHEN 17 THEN 40
              -- and so on
              ELSE value
            END
WHERE zone_id = 1
...