MariaDB
 sql >> Teknologi Basis Data >  >> RDS >> MariaDB

MariaDB JSON_ARRAY_APPEND() Dijelaskan

Di MariaDB, JSON_ARRAY_APPEND() adalah fungsi bawaan yang menambahkan nilai ke akhir larik yang ditentukan dalam dokumen JSON, dan mengembalikan hasilnya.

Sintaks

Sintaksnya seperti ini:

JSON_ARRAY_APPEND(json_doc, path, value[, path, value] ...)

Dimana json_doc adalah dokumen JSON, path adalah jalur ke tempat Anda ingin menambahkan nilai, dan value adalah nilai yang akan ditambahkan.

Contoh

Berikut ini contoh untuk mendemonstrasikan fungsinya.

SET @json_doc = '[0, 1, 2, 3]';

SELECT JSON_ARRAY_APPEND(@json_doc, '$', 4);

Hasil:

+--------------------------------------+
| JSON_ARRAY_APPEND(@json_doc, '$', 4) |
+--------------------------------------+
| [0, 1, 2, 3, 4]                      |
+--------------------------------------+

Dalam hal ini, nilai 4 telah ditambahkan ke akhir larik.

Tambahkan Beberapa Nilai

Anda dapat menambahkan beberapa nilai dalam satu panggilan ke JSON_ARRAY_APPEND() .

Contoh:

SET @json_doc = '[0, 1, 2, 3]';

SELECT JSON_ARRAY_APPEND(@json_doc, '$', 4, '$', 5);

Hasil:

+----------------------------------------------+
| JSON_ARRAY_APPEND(@json_doc, '$', 4, '$', 5) |
+----------------------------------------------+
| [0, 1, 2, 3, 4, 5]                           |
+----------------------------------------------+

Beberapa Array

Anda dapat menambahkan nilai ke lebih dari satu larik dalam panggilan yang sama ke JSON_ARRAY_APPEND() .

Contoh:

SET @json_doc = '{"a": [0, 1], "b": [2, 3]}';

SELECT JSON_ARRAY_APPEND(@json_doc, '$.a', 4, '$.b', 5);

Hasil:

+--------------------------------------------------+
| JSON_ARRAY_APPEND(@json_doc, '$.a', 4, '$.b', 5) |
+--------------------------------------------------+
| {"a": [0, 1, 4], "b": [2, 3, 5]}                 |
+--------------------------------------------------+

Array Bersarang

Berikut ini contoh menambahkan nilai ke array bersarang:

SET @json_doc = '[0, 1, [2, 3]]';

SELECT JSON_ARRAY_APPEND(@json_doc, '$[2]', 4);

Hasil:

+-----------------------------------------+
| JSON_ARRAY_APPEND(@json_doc, '$[2]', 4) |
+-----------------------------------------+
| [0, 1, [2, 3, 4]]                       |
+-----------------------------------------+

Dan dalam contoh berikut, dokumen JSON asli tidak berisi array bersarang, tetapi JSON_ARRAY_APPEND() membuat array bersarang berdasarkan jalur kami:

SET @json_doc = '[0, 1, 2, 3]';

SELECT JSON_ARRAY_APPEND(@json_doc, '$[3]', 4);

Hasil:

+-----------------------------------------+
| JSON_ARRAY_APPEND(@json_doc, '$[3]', 4) |
+-----------------------------------------+
| [0, 1, 2, [3, 4]]                       |
+-----------------------------------------+

Dokumen JSON Lebih Besar

Berikut ini contoh dengan dokumen JSON yang sedikit lebih besar.

Saya juga menggunakan JSON_DETAILED() untuk mempercantik hasilnya:

SET @json_doc = '{  
    "pet": {    
       "name": "Fluffy", 
       "diet": ["Fish", "Chicken"]  
    }
 }';
SELECT JSON_DETAILED(
        JSON_ARRAY_APPEND(
            @json_doc, 
            '$.pet.diet', 
            'Water')
);

Hasil:

{
    "pet": 
    {
        "name": "Fluffy",
        "diet": 
        [
            "Fish",
            "Chicken",
            "Water"
        ]
    }
}

Dan inilah yang membuat array bersarang:

SET @json_doc = '{  
    "pet": {    
       "name": "Scratch", 
       "diet": ["Beef", "Water"]
    }
 }';
SELECT JSON_DETAILED(
        JSON_ARRAY_APPEND(
            @json_doc, 
            '$.pet.diet[1]', 
            'Beer')
);

Hasil:

{
    "pet": 
    {
        "name": "Scratch",
        "diet": 
        [
            "Beef",
            
            [
                "Water",
                "Beer"
            ]
        ]
    }
}

Argumen Null

Jika argumen pertama adalah NULL , hasilnya adalah NULL :

SELECT JSON_ARRAY_APPEND(null, '$', 4);

Hasil:

+---------------------------------+
| JSON_ARRAY_APPEND(null, '$', 4) |
+---------------------------------+
| NULL                            |
+---------------------------------+

Hal yang sama berlaku untuk path argumen:

SET @json_doc = '[0, 1, 2, 3]';

SELECT JSON_ARRAY_APPEND(@json_doc, null, 4);

Hasil:

+---------------------------------------+
| JSON_ARRAY_APPEND(@json_doc, null, 4) |
+---------------------------------------+
| NULL                                  |
+---------------------------------------+

Namun, jika value argumennya adalah NULL , lalu NULL ditambahkan ke larik:

SET @json_doc = '[0, 1, 2, 3]';

SELECT JSON_ARRAY_APPEND(@json_doc, '$', null);

Hasil:

+-----------------------------------------+
| JSON_ARRAY_APPEND(@json_doc, '$', null) |
+-----------------------------------------+
| [0, 1, 2, 3, null]                      |
+-----------------------------------------+

Anda juga dapat menggunakan JSON_ARRAY_INSERT() untuk memasukkan nilai ke dalam array.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Replikasi MySQL dengan ProxySQL di Server WHM/cPanel:Bagian Kedua

  2. Bagaimana Fungsi INSERT() Bekerja di MariaDB

  3. Bagaimana FROM_UNIXTIME() Bekerja di MariaDB

  4. Memantau Galera Cluster untuk MySQL atau MariaDB - Memahami Metrik (Diperbarui)

  5. Membangun Database yang Sangat Tersedia untuk Moodle Menggunakan MariaDB (Replication &MariaDB Cluster)