En MariaDB, JSON_MERGE() es una función integrada que combina dos o más documentos JSON y devuelve el resultado.
El JSON_MERGE() la función ha quedado obsoleta y, para evitar problemas futuros, debe usar JSON_MERGE_PATCH() función en su lugar. El JSON_MERGE_PATCH() La función es un reemplazo compatible con RFC 7396 para JSON_MERGE() .
Sintaxis
La sintaxis es así:
JSON_MERGE(json_doc, json_doc[, json_doc] ...)
Donde json_doc son los documentos JSON a fusionar.
Ejemplo
Aquí hay un ejemplo para demostrarlo.
SELECT JSON_MERGE('{"name":"Wag"}', '{"type":"Dog"}'); Resultado:
+------------------------------------------------+
| JSON_MERGE('{"name":"Wag"}', '{"type":"Dog"}') |
+------------------------------------------------+
| {"name": "Wag", "type": "Dog"} |
+------------------------------------------------+ Podemos ver que los dos documentos se han fusionado en uno.
Aquí hay un ejemplo que fusiona tres documentos:
SELECT JSON_MERGE(
'{ "name" : "Wag" }',
'{ "type" : "Dog" }',
'{ "score" : [ 9, 7, 8 ] }'
) AS Result; Resultado:
+----------------------------------------------------+
| Result |
+----------------------------------------------------+
| {"name": "Wag", "type": "Dog", "score": [9, 7, 8]} |
+----------------------------------------------------+ Arreglos
Una diferencia entre JSON_MERGE() y JSON_MERGE_PATCH() es que JSON_MERGE() fusiona matrices (JSON_MERGE_PATCH() no):
SELECT JSON_MERGE(
'[1,2,3]',
'[4,5,6]'
) AS Result; Resultado:
+--------------------+ | Result | +--------------------+ | [1, 2, 3, 4, 5, 6] | +--------------------+
Intentando esto con JSON_MERGE_PATCH() da como resultado que solo se devuelva la segunda matriz.
Argumento nulo
Si algún argumento es NULL , el resultado es NULL :
SELECT
JSON_MERGE('{"a":1}', null) AS a,
JSON_MERGE(null, '{"a":1}') AS b,
JSON_MERGE(null, null) AS c; Resultado:
+------+------+------+ | a | b | c | +------+------+------+ | NULL | NULL | NULL | +------+------+------+
Recuento de parámetros incorrecto
Llamar a la función sin ningún argumento da como resultado un error:
SELECT JSON_MERGE(); Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_MERGE'
Es lo mismo cuando proporcionas solo un argumento:
SELECT JSON_MERGE('{"a":1}'); Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_MERGE'