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

वस्तु JSONB के भीतर सरणी से तत्व निकाला जा रहा है

हटाएं एक टेबल की पंक्तियों पर काम करता है। इसलिए आप इसका उपयोग तब तक नहीं कर सकते जब तक आप पूरी पंक्ति को हटाना नहीं चाहते।

इसे आजमाएं:

create temp table testing as
select 
    '{ "playersContainer": {
        "players": [
            {
                "id": "1",
                "name": "Nick"
            },
            {
                "id": "2",
                "name": "Rick"
            },
            {
                "id": "3",
                "name": "Trick"
            }
        ]
     }}'::jsonb as value;

अब आपको उस खिलाड़ी की स्थिति ढूंढनी होगी जिसे आप हटाना चाहते हैं, मान लें कि आप रिक को आईडी 2 के साथ चाहते हैं (माइनस 1 क्योंकि इंडेक्स 0 से शुरू होता है)

select position-1 from testing, jsonb_array_elements(value->'playersContainer'->'players') with ordinality arr(elem, position) WHERE elem->>'id' = '2';

अब आप इसे UPDATE . के साथ जोड़ सकते हैं फ़ील्ड को अद्यतन करने के लिए कथन। वांछित अनुक्रमणिका पर तत्व को निकालने के लिए ऋण (-) ऑपरेटर का उपयोग करें।

UPDATE testing SET value = jsonb_set(value, '{playersContainer,players}', (value->'playersContainer'->'players') - (select position-1 from testing, jsonb_array_elements(value->'playersContainer'->'players') with ordinality arr(elem, position) WHERE elem->>'id' = '2')::int );

अंतिम परिणाम:

{
    "playersContainer":{
        "players":[
            {
                "id":"1",
                "name":"Nick"
            },
            {
                "id":"3",
                "name":"Trick"
            }
        ]
    }
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. दिल की धड़कन के साथ PostgreSQL के लिए उच्च उपलब्धता को ट्रैक करना

  2. मैं Postgresql के लिए AWS RDS में डेटाबेस का नाम कैसे बदल सकता हूँ?

  3. सामान्य एसक्यूएल त्रुटि

  4. PostgreSQL वापसी परिणाम JSON सरणी के रूप में सेट?

  5. पोस्टग्रेस्क्ल में फ़ंक्शन, प्रक्रिया, ट्रिगर स्रोत कोड कैसे प्रदर्शित करें?