bugfix> postgresql > 投稿

3つのアレイがあります。例えば ​​:

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

また、更新したい各ユーザーのIDの配列があります。

let id_list = [2323,3434,3434]

この方法で1つの要求でこのデータを更新する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回のリクエストで更新するすべてのデータ

回答 1 件
  • まず、配列のネストを解除する必要があります。

    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 に関する詳細  ここで機能します。

あなたの答え