sql >> Database >  >> RDS >> MariaDB

MariaDB JSON_MERGE() uitgelegd

In MariaDB, JSON_MERGE() is een ingebouwde functie die twee of meer JSON-documenten samenvoegt en het resultaat retourneert.

De JSON_MERGE() functie is verouderd en om toekomstige problemen te voorkomen, moet u de JSON_MERGE_PATCH() gebruiken in plaats daarvan functioneren. De JSON_MERGE_PATCH() functie is een RFC 7396-compatibele vervanging voor JSON_MERGE() .

Syntaxis

De syntaxis gaat als volgt:

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

Waar json_doc zijn de JSON-documenten die moeten worden samengevoegd.

Voorbeeld

Hier is een voorbeeld om te demonstreren.

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

Resultaat:

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

We kunnen zien dat de twee documenten zijn samengevoegd tot één.

Hier is een voorbeeld dat drie documenten samenvoegt:

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

Resultaat:

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

Arrays

Een verschil tussen JSON_MERGE() en JSON_MERGE_PATCH() is dat JSON_MERGE() voegt arrays samen (JSON_MERGE_PATCH() niet):

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

Resultaat:

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

Dit proberen met JSON_MERGE_PATCH() resulteert in dat alleen de tweede array wordt geretourneerd.

Nullargument

Als een argument NULL is , het resultaat is NULL :

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

Resultaat:

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

Onjuist aantal parameters

Het aanroepen van de functie zonder argumenten resulteert in een fout:

SELECT JSON_MERGE();

Resultaat:

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

Het is hetzelfde als u slechts één argument geeft:

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

Resultaat:

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

  1. Hoe controleer ik of een kolom leeg of null is in MySQL?

  2. ER-diagrammen in IRI Workbench

  3. pg gem installeren; FOUT:kan de native extensie van de edelsteen niet bouwen

  4. SQL-fout:onjuiste syntaxis bij het trefwoord 'Gebruiker'