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

MariaDB JSON_MERGE_PATCH() Dijelaskan

Di MariaDB, JSON_MERGE_PATCH() adalah fungsi bawaan yang menggabungkan dua atau lebih dokumen JSON dan mengembalikan hasilnya.

JSON_MERGE_PATCH() function adalah pengganti yang sesuai dengan RFC 7396 untuk JSON_MERGE() fungsi, yang sudah tidak digunakan lagi.

Sintaks

Sintaksnya seperti ini:

JSON_MERGE_PATCH(json_doc, json_doc[, json_doc] ...)

Dimana json_doc adalah dokumen JSON untuk digabungkan.

Contoh

Berikut ini contoh untuk didemonstrasikan.

SELECT JSON_MERGE_PATCH('{"name":"Wag"}', '{"type":"Dog"}');

Hasil:

+------------------------------------------------------+
| JSON_MERGE_PATCH('{"name":"Wag"}', '{"type":"Dog"}') |
+------------------------------------------------------+
| {"name": "Wag", "type": "Dog"}                       |
+------------------------------------------------------+

Kita dapat melihat bahwa kedua dokumen tersebut telah digabungkan menjadi satu.

Berikut adalah contoh yang menggabungkan tiga dokumen:

SELECT JSON_MERGE_PATCH(
    '{ "name" : "Wag" }', 
    '{ "type" : "Dog" }',
    '{ "score" : [ 9, 7, 8 ] }'
    ) AS Result;

Hasil:

+----------------------------------------------------+
| Result                                             |
+----------------------------------------------------+
| {"name": "Wag", "type": "Dog", "score": [9, 7, 8]} |
+----------------------------------------------------+

Array

JSON_MERGE_PATCH() fungsi tidak menggabungkan array:

SELECT JSON_MERGE_PATCH(
    '[1,2,3]', 
    '[4,5,6]'
    ) AS Result;

Hasil:

+-----------+
| Result    |
+-----------+
| [4, 5, 6] |
+-----------+

Ini berbeda dengan (usang) JSON_MERGE() fungsi dan sinonimnya JSON_MERGE_PRESERVE() , keduanya menggabungkan array.

Format Hasil

Anda mungkin telah memperhatikan bahwa JSON_MERGE_PATCH() menambahkan spasi ke dokumen yang dihasilkan. Jika ini masalah, Anda dapat menggunakan JSON_COMPACT() untuk menghilangkan spasi.

Contoh:

SELECT 
    JSON_COMPACT(
        JSON_MERGE_PATCH(
            '{"name":"Wag"}', 
            '{"type":"Dog"}',
            '{"score":[9,7,8]}'
        )
    ) AS Result;

Hasil:

+---------------------------------------------+
| Result                                      |
+---------------------------------------------+
| {"name":"Wag","type":"Dog","score":[9,7,8]} |
+---------------------------------------------+

Tetapi jika Anda perlu menggunakan cara lain dan mendapatkan pemformatan tambahan, seperti struktur indentasi, coba JSON_DETAILED() fungsi.

SELECT 
    JSON_DETAILED(
        JSON_MERGE_PATCH(
            '{ "name" : "Wag" }', 
            '{ "type" : "Dog" }',
            '{ "score" : [ 9, 7, 8 ] }'
        )
    ) AS Result;

Hasil:

+---------------------------------------+
| Result                                |
+---------------------------------------+
| {
    "name": "Wag",
    "type": "Dog",
    "score": 
    [
        9,
        7,
        8
    ]
} |
+---------------------------------------+

Argumen Null

Jika ada argumen NULL , hasilnya adalah NULL :

SELECT 
    JSON_MERGE_PATCH('{"a":1}', null) AS a,
    JSON_MERGE_PATCH(null, '{"a":1}') AS b,
    JSON_MERGE_PATCH(null, null) AS c;

Hasil:

+------+------+------+
| a    | b    | c    |
+------+------+------+
| NULL | NULL | NULL |
+------+------+------+

Jumlah Parameter Salah

Memanggil fungsi tanpa argumen menghasilkan kesalahan:

SELECT JSON_MERGE_PATCH();

Hasil:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_MERGE_PATCH'

Sama halnya jika Anda hanya memberikan satu argumen:

SELECT JSON_MERGE_PATCH('{"a":1}');

Hasil:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_MERGE_PATCH'

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

  2. MariaDB JSON_UNQUOTE() Dijelaskan

  3. Memahami Indeks di MySQL:Bagian Kedua

  4. MariaDB BENCHMARK() Dijelaskan

  5. Cara Mengenkripsi Cadangan MySQL &MariaDB Anda