Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

JSON_ARRAY_APPEND() – Menambahkan Nilai ke JSON Array di MySQL

Saat menggunakan dokumen JSON dengan MySQL, Anda dapat menggunakan JSON_ARRAY_APPEND() berfungsi untuk menambahkan nilai baru ke array.

Cara kerjanya adalah, Anda memberikan dokumen JSON sebagai argumen pertama, lalu mengikutinya dengan jalur untuk menambahkan, diikuti dengan nilai untuk ditambahkan.

Di MySQL 5.7, fungsi ini disebut JSON_APPEND() tapi nama itu tidak lagi didukung.

Sintaks

Sintaksnya seperti ini:

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

Dimana:

  • json_doc adalah dokumen JSON.
  • path adalah jalur elemen yang akan ditambahkan nilai baru.
  • val adalah nilai baru yang akan ditambahkan.

Pasangan jalur-nilai dievaluasi dari kiri ke kanan. Dokumen yang dihasilkan dengan mengevaluasi satu pasangan menjadi nilai baru yang digunakan untuk mengevaluasi pasangan berikutnya.

Contoh 1 – Penggunaan Dasar

Berikut ini contoh untuk didemonstrasikan.

SELECT JSON_ARRAY_APPEND('[1, 2, 3]', '$', 4) AS 'Result';

Hasil:

+--------------+
| Result       |
+--------------+
| [1, 2, 3, 4] |
+--------------+

Jadi argumen ke-3 ditambahkan ke array. Dalam hal ini, saya menggunakan $ untuk jalan. Ini adalah sinonim untuk dokumen JSON, jadi nilainya ditambahkan ke larik tingkat atas (yang dalam hal ini, merupakan satu-satunya larik).

Contoh 2 – Array Bersarang

Berikut ini contoh menambahkan nilai ke array yang bersarang di dalam array lain.

SELECT JSON_ARRAY_APPEND('[1, 2, [3, 4]]', '$[2]', 5) AS 'Result';

Hasil:

+-------------------+
| Result            |
+-------------------+
| [1, 2, [3, 4, 5]] |
+-------------------+

Jadi di sini, saya menggunakan $[2] sebagai jalan. Ini menentukan larik pada elemen ketiga (array menggunakan penomoran berbasis nol, jadi penghitungan dimulai dari nol).

Jika belum ada larik pada elemen itu, larik baru akan dibuat.

Seperti ini:

SELECT JSON_ARRAY_APPEND('[1, 2, 3]', '$[2]', 4) AS 'Result';

Hasil:

+----------------+
| Result         |
+----------------+
| [1, 2, [3, 4]] |
+----------------+

Contoh 3 – Dokumen JSON yang Lebih Besar

Contoh ini menggunakan dokumen JSON (sedikit) lebih besar. Ini menunjukkan bagaimana jalur berubah tergantung di mana array berada dalam dokumen.

SET @data = '{  
    "Person": {    
       "Name": "Homer", 
       "Hobbies": ["Eating", "Sleeping"]  
    }
 }';
SELECT JSON_ARRAY_APPEND(@data, '$.Person.Hobbies', "Base Jumping") AS 'Result';

Hasil:

+----------------------------------------------------------------------------------+
| Result                                                                           |
+----------------------------------------------------------------------------------+
| {"Person": {"Name": "Homer", "Hobbies": ["Eating", "Sleeping", "Base Jumping"]}} |
+----------------------------------------------------------------------------------+

Dan seperti pada contoh sebelumnya, kita juga dapat membuat array bersarang baru, jika diperlukan:

SET @data = '{  
    "Person": {    
       "Name": "Homer", 
       "Hobbies": ["Eating", "Sleeping"]  
    }
 }';
SELECT JSON_ARRAY_APPEND(@data, '$.Person.Hobbies[0]', "Drinking") AS 'Result';

Hasil:

+--------------------------------------------------------------------------------+
| Result                                                                         |
+--------------------------------------------------------------------------------+
| {"Person": {"Name": "Homer", "Hobbies": [["Eating", "Drinking"], "Sleeping"]}} |
+--------------------------------------------------------------------------------+


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mendapatkan Setiap Baris Ke-N di MySQL

  2. Nilai pengikatan PDO untuk pernyataan MySQL IN

  3. Cara mengaktifkan log kueri lambat di MySQL

  4. Bagaimana Fungsi MATCH() Bekerja di MySQL

  5. Instal mysql-python (Windows)