PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

Postgresql और jsonb - एक बहु-स्तरीय सरणी में एक कुंजी/मान डालना

jsonb_array_elements का उपयोग करें सभी ऐरे एलिमेंट को अननेस्ट करने के लिए और फिर आवश्यक जोंस जोड़ें और jsonb_agg का उपयोग करें इसे फिर से एकत्रित करने के लिए:

with cte as
 (select id,
         jsonb_agg(jsonb_set(val1,
                             '{blocs}',
                             (select jsonb_agg(arr2 || '{"type": "regular"}')
                                from jsonb_array_elements(arr1.val1 - >
                                                          'blocs') arr2)))
    from challenge, 
         jsonb_array_elements(lines) arr1(val1)
   group by 1) 
update challenge 
   set lines = (cte.jsonb_agg) 
  from cte 
 where challenge.id = cte.id

DEMO




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पोस्टग्रेएसक्यूएल डीबी से टिप्पणियां प्राप्त करना

  2. Django व्यवस्थापक खोज क्वेरी पोस्टग्रेज़ इंडेक्स को नहीं मार रही है

  3. जावा + एसएसएच + पोस्टग्रेज

  4. Postgresql स्तंभों के अद्वितीय दो-तरफ़ा संयोजन को लागू करता है

  5. क्या पोस्टग्रेज में एक पंक्ति के पुराने संस्करण तक पहुंचना संभव है जिसे खाली नहीं किया गया है?