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

JSON_ARRAY_INSERT() – Masukkan Nilai ke dalam Array JSON di MySQL

Di MySQL, JSON_ARRAY_INSERT() fungsi digunakan untuk memasukkan nilai baru ke dalam array.

Anda memberikan dokumen JSON sebagai argumen pertama, diikuti dengan jalur yang akan dimasukkan, diikuti dengan nilai yang akan disisipkan.

Sintaks

Sintaksnya seperti ini:

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

Dimana:

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

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_INSERT('[1, 2, 3]', '$[1]', 4) AS 'Result';

Hasil:

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

Jadi argumen ke-3 dimasukkan ke dalam array di jalur yang ditentukan. Dalam hal ini, saya menggunakan $[1] untuk jalur, yang merujuk ke elemen kedua (array JSON menggunakan penomoran berbasis nol – penomoran dimulai dari 0 ).

Contoh 2 – Array Bersarang

Berikut ini contoh penyisipan nilai ke dalam larik yang bersarang di dalam larik lain.

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

Hasil:

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

Jadi di sini, saya menggunakan $[2][1] sebagai jalan. [2] mengacu pada elemen ke-3 dari larik luar. [1] mengacu pada elemen ke-2 dari array bersarang.

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_INSERT(@data, '$.Person.Hobbies[1]', "Base Jumping") AS 'Result';

Hasil:

+----------------------------------------------------------------------------------+
| Result                                                                           |
+----------------------------------------------------------------------------------+
| {"Person": {"Name": "Homer", "Hobbies": ["Eating", "Base Jumping", "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. SQL Group By dengan Order By

  2. 15 Tips Penyesuaian dan Pengoptimalan Kinerja MySQL/MariaDB yang Berguna

  3. Pembatas di MySQL

  4. ROW_NUMBER di SQL – Pilih Contoh Teratas di SQL dan SQL Server

  5. SQL SERVER 2016 – Membandingkan Rencana Eksekusi