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

MariaDB JSON_ARRAY_INSERT() Dijelaskan

Di MariaDB, JSON_ARRAY_INSERT() adalah fungsi bawaan yang memasukkan nilai ke dalam dokumen JSON dan mengembalikan hasilnya.

Sintaks

Sintaksnya seperti ini:

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

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

Contoh

Berikut ini contoh untuk didemonstrasikan.

SELECT JSON_ARRAY_INSERT('[0, 1, 2]', '$[1]', 3); 

Hasil:

+-------------------------------------------+| JSON_ARRAY_INSERT('[0, 1, 2]', '$[1]', 3) |+--------------------------- ----------------+| [0, 3, 1, 2] |+--------------------------------------- ----+

Dalam hal ini, nilai 3 dimasukkan ke dalam array pada posisi 1 . Array berbasis nol, sehingga menjadi elemen kedua dalam array.

Sisipkan Beberapa Nilai

Anda dapat memasukkan beberapa nilai dalam satu panggilan ke JSON_ARRAY_INSERT() .

Contoh:

SELECT JSON_ARRAY_INSERT('[0, 1, 2]', '$[0]', 4, '$[2]', 5); 

Hasil:

+------------------------------------------------- --------+| JSON_ARRAY_INSERT('[0, 1, 2]', '$[0]', 4, '$[2]', 5) |+------------------ ------------------------------------+| [4, 0, 5, 1, 2] |+------------------------------------- -----------------+

Evaluasi dilakukan dari kiri ke kanan.

Inilah yang terjadi jika kita mengganti path /value argumen seputar:

SELECT JSON_ARRAY_INSERT('[0, 1, 2]', '$[2]', 5, '$[0]', 4); 

Hasil:

+------------------------------------------------- --------+| JSON_ARRAY_INSERT('[0, 1, 2]', '$[2]', 5, '$[0]', 4) |+------------------ ------------------------------------+| [4, 0, 1, 5, 2] |+------------------------------------- -----------------+

Beberapa Array

Anda dapat memasukkan nilai ke lebih dari satu larik dalam panggilan yang sama ke JSON_ARRAY_INSERT() .

Contoh:

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

SELECT JSON_ARRAY_INSERT(@json_doc, '$.a[1]', 4, '$.b[2]', 5); 

Hasil:

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

Array Bersarang

Berikut ini contoh memasukkan nilai ke dalam array bersarang:

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

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

Hasil:

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

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", "Water"]  
    }
 }';
SELECT JSON_DETAILED(
        JSON_ARRAY_INSERT(
            @json_doc, 
            '$.pet.diet[1]', 
            'Chicken')
); 

Hasil:

{ "pet":{ "name":"Fluffy", "diet":[ "Ikan", "Ayam", "Air" ] }}

Argumen Null

Jika argumen pertama adalah NULL , hasilnya adalah NULL :

SELECT JSON_ARRAY_INSERT(null, '$[1]', 4); 

Hasil:

+------------------------------------+| JSON_ARRAY_INSERT(null, '$[1]', 4) |+----------------------------------- -+| NULL |+-----------------------------------+

Hal yang sama berlaku untuk path argumen:

SELECT JSON_ARRAY_INSERT('[0, 1, 2, 3]', null, 4); 

Hasil:

+--------------------------------------------+| JSON_ARRAY_INSERT('[0, 1, 2, 3]', null, 4) |+------------------------------ --------------+| NULL |+--------------------------------------------+ 

Namun, jika value argumennya adalah NULL , lalu NULL dimasukkan ke dalam larik:

SELECT JSON_ARRAY_INSERT('[0, 1, 2]', '$[1]', null); 

Hasil:

+------------------------------------------------- +| JSON_ARRAY_INSERT('[0, 1, 2]', '$[1]', null) |+--------------------------- -------------------+| [0, null, 1, 2] |+--------------------------------------- -------+

Anda juga dapat menggunakan JSON_ARRAY_APPEND() untuk menambahkan nilai ke 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. Membandingkan Penawaran Cloud Cluster Galera:Bagian Kedua Google Cloud Platform (GCP)

  2. Meningkatkan Kinerja Backend Bagian 2/3:Menggunakan Indeks Basis Data

  3. Peringatan dan Pemberitahuan dari SkySQL

  4. Menggunakan Sysbench untuk Menghasilkan Data Uji untuk Tabel Sharded di MySQL

  5. MariaDB CONNECTION_ID() Dijelaskan