MariaDB
 sql >> база данни >  >> RDS >> MariaDB

MariaDB JSON_MERGE() Обяснено

В MariaDB, JSON_MERGE() е вградена функция, която обединява два или повече JSON документа и връща резултата.

 JSON_MERGE() функцията е отхвърлена и за да избегнете бъдещи проблеми, трябва да използвате JSON_MERGE_PATCH() функция вместо това. JSON_MERGE_PATCH() функция е съвместим с RFC 7396 заместител на JSON_MERGE() .

Синтаксис

Синтаксисът е така:

JSON_MERGE(json_doc, json_doc[, json_doc] ...)

Където json_doc са JSON документите за сливане.

Пример

Ето пример за демонстрация.

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

Резултат:

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

Виждаме, че двата документа са обединени в един.

Ето пример, който обединява три документа:

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

Резултат:

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

Масиви

Една разлика между JSON_MERGE() и JSON_MERGE_PATCH() това е JSON_MERGE() обединява масиви (JSON_MERGE_PATCH() не):

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

Резултат:

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

Опит за това с JSON_MERGE_PATCH() води до връщане само на втория масив.

Нулев аргумент

Ако някой аргумент е NULL , резултатът е NULL :

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

Резултат:

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

Неправилен брой параметри

Извикването на функцията без никакви аргументи води до грешка:

SELECT JSON_MERGE();

Резултат:

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

Същото е, когато предоставите само един аргумент:

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

Резултат:

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ClusterControl CMON HA за висока наличност на разпределена база данни – част втора (настройка на GUI достъп)

  2. Обяснение на оператора MariaDB MINUS

  3. Комбиниране на силата на SQL и процедурни изявления с режима за съвместимост на MariaDB на Oracle

  4. Увеличаване на ефективността на заявки към база данни за MySQL - част втора

  5. Как работи GET_FORMAT() в MariaDB