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

JSON_INSERT() – Masukkan Nilai ke dalam Dokumen JSON di MySQL

Di MySQL, JSON_INSERT() fungsi memasukkan nilai ke dalam dokumen JSON dan mengembalikan hasilnya.

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, jalur, val[, jalur, 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_INSERT('{"a":1, "b":2}', '$.c', 3) SEBAGAI 'Hasil';

Hasil:

+--------------------------+| Hasil |+--------------------------+| {"a":1, "b":2, "c":3} |+--------------------------+ 

Jadi argumen ke-3 dimasukkan ke dalam array di jalur yang ditentukan. Dalam hal ini, saya menggunakan $.c untuk jalur dan 3 untuk nilai yang akan dimasukkan. Ini menghasilkan pasangan kunci/nilai "c": 3 .

Ini contoh lain:

SELECT JSON_INSERT('{"Name":"Homer", "Gender":"Male"}', '$.Age', 39) SEBAGAI 'Hasil';

Hasil:

+------------------------------------------------- --+| Hasil |+----------------------------------------------- -+| {"Usia":39, "Nama":"Homer", "Jenis Kelamin":"Pria"} |+------------------------- -----------------------+

Contoh 2 – Mencoba Menimpa Jalur yang Ada

Pasangan jalur-nilai untuk jalur yang ada dalam dokumen diabaikan dan tidak menimpa nilai dokumen yang ada.

Jadi jika kita memodifikasi contoh sebelumnya untuk memasukkan nilai pada Name (yang sudah ada), tidak ada penyisipan yang dilakukan:

SELECT JSON_INSERT('{"Name":"Homer", "Gender":"Male"}', '$.Name', "Bart") SEBAGAI 'Hasil';

Hasil:

+-------------------------------------+| Hasil |+------------------------------------------------+| {"Nama":"Homer", "Jenis Kelamin":"Pria"} |+------------------------------- ------+

Contoh 3 – Array

Anda dapat menyisipkan nilai ke dalam larik dengan menggunakan jalur melewati akhir larik yang ada. Contoh:

SELECT JSON_INSERT('[1, 2, 3]', '$[3]', 4) SEBAGAI 'Hasil';

Hasil:

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

Namun, jika Anda menggunakan jalur yang sudah ada dalam larik, larik akan tetap tidak berubah:

SELECT JSON_INSERT('[1, 2, 3]', '$[1]', 4) SEBAGAI 'Hasil';

Hasil:

+-----------+| Hasil |+------------+| [1, 2, 3] |+-----------+

Jika nilai yang ada bukan array, maka akan dibungkus otomatis sebagai array, kemudian diperluas dengan nilai baru. Contoh:

SELECT JSON_INSERT('{"a":1, "b":2}', '$[2]', 3) SEBAGAI 'Hasil';

Hasil:

+------------------------+| Hasil |+-----------------------+| [{"a":1, "b":2}, 3] |+-----------------------+

Tetapi sekali lagi, jika Anda mencoba memasukkan nilai pada jalur yang sudah ada, dokumen JSON tetap tidak berubah:

SELECT JSON_INSERT('{"a":1, "b":2}', '$[0]', 3) SEBAGAI 'Hasil';

Hasil:

+------------------+| Hasil |+------------------+| {"a":1, "b":2} |+------------------+

Contoh 4 – Dokumen JSON yang Lebih Besar

Berikut ini contoh dengan dokumen JSON (sedikit) lebih besar.

SET @data ='{ "Orang":{ "Nama":"Homer", "Hobi":["Makan", "Tidur"] } }';SELECT JSON_INSERT(@data, '$.Person. Hobi [2]', "Lompat Dasar") SEBAGAI 'Hasil';

Hasil:

+------------------------------------------------- ------------------------------------+| Hasil |+----------------------------------------------- -----------------------------------+| {"Orang":{"Nama":"Homer", "Hobi":["Makan", "Tidur", "Base Jumping"]}} |+-------------- -------------------------------------------------- ------------------+

Lihat juga JSON_ARRAY_INSERT() dan JSON_ARRAY_APPEND() jika Anda perlu menyisipkan atau menambahkan data ke dalam larik JSON.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JSON_VALUE() di MySQL

  2. Membuat Aplikasi Web Dari Awal Menggunakan Python Flask dan MySQL:Bagian 5

  3. Bagaimana menghubungkan jarak jauh ke database MySQL yang terletak di server bersama kami

  4. Memigrasikan Database MySQL dari CloudSQL Ke AWS RDS

  5. Beberapa kueri dieksekusi di java dalam satu pernyataan