Как обновить записи таблицы по парам старое значение -> новое значение?

Здравствуйте, есть задачка:
Есть таблица и десяток записей:
CREATE TABLE test
(
  id serial,
  target_id integer
);
INSERT INTO test (1, 1206);
INSERT INTO test (1, 1210);
INSERT INTO test (1, 1211);
INSERT INTO test (1, 1250);

и у меня "на руках" есть пары значений(пусть будет массив):
1206=>1281,
1210=>1282,
1211=>1283,
1250=>1287

можно ли как то заменить в таблице 1206 на 1281 и далее по списку простым или сложным запросом, не выполняя столько запросов сколько имеется пар значений?
  • Вопрос задан
  • 78 просмотров
Решения вопроса 1
0xD34F
@0xD34F
UPDATE test SET
  target_id = t.new_id
FROM (
  SELECT
    unnest(ARRAY[1206, 1210, 1211, 1250]) AS old_id,
    unnest(ARRAY[1281, 1282, 1283, 1287]) AS new_id
) AS t
WHERE target_id = t.old_id
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы