Обновить несколько строк одновременно (postgres) - PullRequest
0 голосов
/ 25 мая 2018

У меня есть 3 массива.Например:

let status = [1,2,3];
let name = ['Andrey','Vasya','Petia'];
let age = [23,45,54];

Также у меня есть массив идентификаторов для каждого пользователя, которого я хочу обновить.

let id_list = [2323,3434,3434] 

Я хочу отправить запрос postgres, посредством которого я обновляю эти данные одним способом:

UPDATE users SET status = '1' , name = 'Andrey', age = '23' WHERE id ='2323'
UPDATE users SET status = '2' , name = 'Vasya', age = '45' WHERE id ='3434'

и т. Д.

Все данные, которые я хочуобновление в один запрос

1 Ответ

0 голосов
/ 25 мая 2018

Прежде всего вы должны удалить свой массив:

WITH sample (id, name, status, age) AS (
    SELECT 
        * 
    FROM 
        --Using unnest function
        unnest(
            ARRAY[2323, 3434, 3434], 
            ARRAY['Andrey','Vasya','Petia'], 
            ARRAY[1,2,3], 
            ARRAY[23,45,54]
        )
)
--And then proceed to your update
UPDATE 
    users 
    SET status = s.status , name = s.name, age = s.age 
    FROM sample s
    WHERE users.id = s.id;

Подробнее о unnest function здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...