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

MariaDB JSON_MERGE_PRESERVE() Dijelaskan

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

JSON_MERGE_PRESERVE() adalah sinonim untuk JSON_MERGE() , yang telah ditinggalkan. Untuk menghindari masalah di masa mendatang, Anda harus menggunakan JSON_MERGE_PATCH() fungsi sebagai gantinya. JSON_MERGE_PATCH() function adalah pengganti yang sesuai dengan RFC 7396 untuk JSON_MERGE() .

Sintaks

Sintaksnya seperti ini:

JSON_MERGE_PRESERVE(json_doc, json_doc[, json_doc] ...)

Dimana json_doc adalah dokumen JSON untuk digabungkan.

Contoh

Berikut ini contoh untuk didemonstrasikan.

SELECT JSON_MERGE_PRESERVE(
    '{"name":"Wag"}', 
    '{"type":"Dog"}'
    ) AS Result;

Hasil:

+--------------------------------+
| Result                         |
+--------------------------------+
| {"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_PRESERVE(
    '{ "name" : "Wag" }', 
    '{ "type" : "Dog" }',
    '{ "score" : [ 9, 7, 8 ] }'
    ) AS Result;

Hasil:

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

Array

Satu perbedaan antara JSON_MERGE_PRESERVE() dan JSON_MERGE_PATCH() apakah itu JSON_MERGE_PRESERVE() menggabungkan array (JSON_MERGE_PATCH() tidak):

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

Hasil:

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

Mencoba ini dengan JSON_MERGE_PATCH() hanya menghasilkan larik kedua yang dikembalikan.

Jika Anda bertanya-tanya, ya JSON_MERGE() juga menggabungkan array.

Argumen Null

Jika ada argumen NULL , hasilnya adalah NULL :

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

Hasil:

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

Jumlah Parameter Salah

Memanggil fungsi tanpa argumen menghasilkan kesalahan:

SELECT JSON_MERGE_PRESERVE();

Hasil:

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

Sama halnya jika Anda hanya memberikan satu argumen:

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

Hasil:

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Memigrasikan Amazon RDS (MySQL atau MariaDB) ke Server Lokal

  2. Bagaimana RADIANS() Bekerja di MariaDB

  3. Perbaiki "ERROR 1054 (42S22):Kolom tidak dikenal '...' di 'pada klausa" di MariaDB

  4. Bagaimana REPEAT() Bekerja di MariaDB

  5. Bagaimana menghubungkan ke AWS MySQL / MariaDB RDS atau Database EC2 dari MySQL WorkBench