sql >> データベース >  >> RDS >> PostgreSQL

オブジェクトのjsonb配列のキー値を更新します

    jsonb> 関数と演算子

    UPDATE company c
    SET    log = sub.log2
    FROM  (
       SELECT *
       FROM   company c
       CROSS  JOIN LATERAL (
          SELECT jsonb_agg(jsonb_set(l, '{oldvalue}', to_jsonb(rtrim(l->>'oldvalue')))) AS log2
          FROM   jsonb_array_elements(c.log) l
          ) sub
       WHERE  jsonb_typeof(log) = 'array'  -- exclude NULL and non-arrays
       ) sub
    WHERE  c.code =  sub.code   -- assuming code is unique
    AND    c.log  <> sub.log2;  -- only where column actually changed.
    

    SQLフィドル。



    1. ロールアップ機能 - NULL を置換

    2. DBMS_SQLを使用してレコードを挿入するOracleDynamicSQLの例

    3. PHPでMySQL列の合計を取得する

    4. SQLがベン図として結合する